Commit af0984c3 by tangzhongyang

更新

parent c4534545
......@@ -30,6 +30,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
public async Task Drugquery([FromBody] SYS_Drugquery sYS_Drugquery, string zxr)
{
var icd_or_diseaseCondition = "";
var notdisease = "";
long type = 0;
long num = 0;
var drugs = "";
......@@ -46,13 +47,19 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
{
foreach (var disease in sYS_Drugquery.diseaseName)
{
if (!string.IsNullOrEmpty(disease))
if (!string.IsNullOrEmpty(disease)& !disease.Contains("!"))
icd_or_diseaseCondition = icd_or_diseaseCondition + $"or DISEASE_NAME like '%{disease}%'";
if (!string.IsNullOrEmpty(disease) & disease.Contains("!"))
notdisease = notdisease + $"and DISEASE_NAME not like '%{disease.Replace("!","").Replace("!", "")}%'";
}
}
if (icd_or_diseaseCondition.Length > 0)
{
icd_or_diseaseCondition = icd_or_diseaseCondition.Substring(2, icd_or_diseaseCondition.Length - 2);
if (notdisease.Length > 0)
icd_or_diseaseCondition = "(" + icd_or_diseaseCondition + ")" + notdisease;
}
if (sYS_Drugquery.drugName != null)
{
......@@ -104,6 +111,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
semaphore.Release();
}
}
private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCondition, string drugs, string materialNames, long num, long type, string zxr)
{
_drugqueryQueries.updateCOMPLETE_MARK(num, 21);
......@@ -112,14 +120,11 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo
if (type == 1)
{
var tasks = new List<Task>();
//_drugqueryQueries.Diseasequery(sYS_Drugquery.type1_2, icd_or_diseaseCondition, num, 1, zxr);
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Diseasequery(sYS_Drugquery.type1_2, icd_or_diseaseCondition, num, 1, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Diseasequery(sYS_Drugquery.type1_2, icd_or_diseaseCondition, num, 2, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Diseasequery(sYS_Drugquery.type1_2, icd_or_diseaseCondition, num, 3, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Diseasequery(sYS_Drugquery.type1_2, icd_or_diseaseCondition, num, 4, zxr)));
Task.WaitAll(tasks.ToArray());
_drugqueryQueries.updateCOMPLETE_MARK(num, 22);
_homeQueries.SendMail(@$"药品/疾病/材料平台提醒", @$" { "疾病"}{sYS_Drugquery.peojectName}拉取结束!", zxr);
}
else if (type == 2)
{
......@@ -129,8 +134,6 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 3, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 4, zxr)));
Task.WaitAll(tasks.ToArray());
_drugqueryQueries.updateCOMPLETE_MARK(num, 22);
_homeQueries.SendMail(@$"药品/疾病/材料平台提醒", @$" {"药品"}{sYS_Drugquery.peojectName}拉取结束!", zxr);
}
else if (type == 3)
{
......@@ -140,17 +143,16 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 3, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 4, zxr)));
Task.WaitAll(tasks.ToArray());
_drugqueryQueries.updateCOMPLETE_MARK(num, 22);
_homeQueries.SendMail(@$"药品/疾病/材料平台提醒", @$" { "材料"}{sYS_Drugquery.peojectName}拉取结束!", zxr);
}
else
{
throw new DomainException("只能单类型查询!!");
}
_drugqueryQueries.updateCOMPLETE_MARK(num, 22);
_homeQueries.SendMail(@$"药品/疾病/材料平台提醒", @$" {(type == 1 ? "疾病" : type == 2 ? "药品" : "材料")}{sYS_Drugquery.peojectName}拉取结束!", zxr);
}
catch (Exception e)
{
throw e;
}
}
......
......@@ -14,7 +14,7 @@
namespace QueryPlatform.Api.Controllers
{
[Authorize]
[Route("api/home")]
[Route("api/resource")]
[ApiController]
public class HomeController : Controller
{
......
......@@ -169,23 +169,23 @@ public void JX_GXID(int id, int hos_id)
var sql = @$" SELECT DISTINCT ExecOpenLink , ExecDatabase FROM [DB_SV_Data_Config].[dbo].[SYS_Hospital] A WHERE id ={hos_id}; ";
SYS_Hospital hos = Connection(156).Query<SYS_Hospital>(sql).FirstOrDefault();
sql = @$" update [{hos.ExecDatabase}].[dbo].[ASSAY_REPORT] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[DIC_DEPT] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[DIC_DIAG] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[DIC_DRUG] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[DIC_EMP] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[DIC_FEE] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[EXEC_REPORT] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[INPAT_DIAG] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[INPAT_FEE] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[INPAT_ORDER] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[INPAT_REG_INFO] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[OUT_DIAG] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[OUT_FEE] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[OUT_PRES] set org_code={hos_id} where org_code<>{hos_id}
update [{hos.ExecDatabase}].[dbo].[OUT_REG_INFO] set org_code={hos_id} where org_code<>{hos_id}";
updatezt(id, hos_id, "修改org_code不等于医院id的数据" + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
//sql = @$" update [{hos.ExecDatabase}].[dbo].[ASSAY_REPORT] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[DIC_DEPT] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[DIC_DIAG] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[DIC_DRUG] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[DIC_EMP] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[DIC_FEE] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[EXEC_REPORT] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[INPAT_DIAG] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[INPAT_FEE] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[INPAT_ORDER] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[INPAT_REG_INFO] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[OUT_DIAG] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[OUT_FEE] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[OUT_PRES] set org_code={hos_id} where org_code<>{hos_id}
// update [{hos.ExecDatabase}].[dbo].[OUT_REG_INFO] set org_code={hos_id} where org_code<>{hos_id}";
//updatezt(id, hos_id, "修改org_code不等于医院id的数据" + sql.Replace("'", "''"), null);
//JX_zx(sql, hos_id, id, hos);
//判断id是否修
//判断MASTER_INDEX是否修改
......@@ -194,124 +194,167 @@ public void JX_GXID(int id, int hos_id)
updatezt(id, hos_id, "判断MASTER_INDEX是否修改" + sql.Replace("'", "''"), null);
if (JX_zx_int(sql, hos_id, id, hos) > 0 && hos.ExecDatabase.Length == 13)
{
sql = $@" IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT')
DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT
IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_NOTNULL')
DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_NOTNULL
IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_STORE1')
DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE1
IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_STORE2')
DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE2
CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT (PERSON_ID int,ID_CARD NVARCHAR(max),CARD_ID NVARCHAR(max),NEWPERSON_ID int)
CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_NOTNULL(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE1(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE2(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
CREATE NONCLUSTERED INDEX [INDEX_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL]([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX2_PATIENT] ON [{hos.ExecDatabase}].[dbo].[PATIENT] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)";
updatezt(id, hos_id, "创建需要使用的表" + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
// sql = $@" IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT')
//DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT
//IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_NOTNULL')
//DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_NOTNULL
//IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_STORE1')
//DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE1
//IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'PATIENT_STORE2')
//DROP TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE2
//CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT (PERSON_ID int,ID_CARD NVARCHAR(max),CARD_ID NVARCHAR(max),NEWPERSON_ID int)
//CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_NOTNULL(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
//CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE1(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
//CREATE TABLE [{hos.ExecDatabase}].dbo.PATIENT_STORE2(PERSON_ID int,CODE NVARCHAR(50),NEWPERSON_ID int)
// CREATE NONCLUSTERED INDEX [INDEX_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([CODE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL]([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX1_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([PERSON_ID] ASC, [CODE] ASC, [NEWPERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX2_PATIENT] ON [{hos.ExecDatabase}].[dbo].[PATIENT] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_NOTNULL] ON [{hos.ExecDatabase}].[dbo].[PATIENT_NOTNULL] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_STORE1] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE1] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
//CREATE NONCLUSTERED INDEX [INDEX2_PATIENT_STORE2] ON [{hos.ExecDatabase}].[dbo].[PATIENT_STORE2] ([PERSON_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)";
// updatezt(id, hos_id, "创建需要使用的表" + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// //判断病人表中主索引列是否有值
// sql = @$" SELECT CASE WHEN MAX(MASTER_INDEX) IS NULL THEN 0 ELSE MAX(MASTER_INDEX) END id FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT where MASTER_INDEX is not null; ";
// updatezt(id, hos_id, "判断病人表中主索引列是否有值" + sql.Replace("'", "''"), null);
// int COUNT = JX_zx_int(sql, hos_id, id, hos);
// sql = @$" SELECT COUNT(1) id FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT where MASTER_INDEX is null ";
// int COUNT_ROW = JX_zx_int(sql, hos_id, id, hos);
// if (COUNT_ROW != 0)
// {
// //将病人的医保号和身份证号集中放在一张表中
// sql = $@"truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT
// truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL
// truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_STORE1
// truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_STORE2
// insert into [{hos.ExecDatabase}].[DBO].PATIENT(PERSON_ID,ID_CARD,CARD_ID,NEWPERSON_ID)
// SELECT TAB.PERSON_ID, CAST(ID_CARD AS NVARCHAR(100))ID_CARD, CARD_ID ,NULL NEWPERSON_ID FROM
// (SELECT PERSON_ID,ID_CARD FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT WHERE [MASTER_INDEX] IS NULL ) TAB
// LEFT JOIN (SELECT PERSON_ID, CARD_ID FROM (SELECT DJ.PERSON_ID, CARD_ID FROM [{hos.ExecDatabase}].[DBO].[OUT_REG_INFO] DJ GROUP BY DJ.PERSON_ID, CARD_ID
// UNION
// SELECT DJ.PERSON_ID, CARD_ID FROM [{hos.ExecDatabase}].[DBO].[INPAT_REG_INFO] DJ GROUP BY DJ.PERSON_ID,CARD_ID) TA ) TAB1
// ON TAB.PERSON_ID=TAB1.PERSON_ID GROUP BY TAB.PERSON_ID,ID_CARD,CARD_ID;";
// updatezt(id, hos_id, "将病人的医保号和身份证号集中放在一张表中" + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// //获取最大的master_index的值
// sql = @$" select case when max(NEWPERSON_ID) is null then 0 else max(NEWPERSON_ID) end id from [{hos.ExecDatabase}].[dbo].[PATIENT]";
// updatezt(id, hos_id, "获取最大的master_index的值" + sql.Replace("'", "''"), null);
// int mark = JX_zx_int(sql, hos_id, id, hos);
// //置空不符合规范的身份证号和医保号
// //更新无医保号且无身份证号的病人
// sql = $@"IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'tablea')
// DROP TABLE [{hos.ExecDatabase}].dbo.tablea
// UPDATE [{hos.ExecDatabase}].[dbo].PATIENT SET ID_CARD = NULL WHERE ID_CARD NOT LIKE '[0-9]%' OR LEN(ID_CARD)<=15 OR ID_CARD LIKE '%8888%' OR ID_CARD LIKE '%00000%'
// UPDATE [{hos.ExecDatabase}].[dbo].PATIENT SET CARD_ID = NULL WHERE CARD_ID NOT LIKE '[0-9]%' OR LEN(CARD_ID)<6
// create table [{hos.ExecDatabase}].[dbo].tablea (id int primary key identity({COUNT + mark + 1},1),[code] nvarchar(200))
// insert into [{hos.ExecDatabase}].[dbo].tablea(code)
// select distinct person_id from [{hos.ExecDatabase}].[dbo].[PATIENT] WHERE ID_CARD IS NULL AND CARD_ID IS NULL
// update [{hos.ExecDatabase}].[dbo].[PATIENT] set NEWPERSON_ID = b.id from [{hos.ExecDatabase}].[dbo].tablea b where [{hos.ExecDatabase}].[dbo].[PATIENT].PERSON_ID = b.code
// insert into [{hos.ExecDatabase}].[dbo].PATIENT_NOTNULL(PERSON_ID,CODE,NEWPERSON_ID)
// select PERSON_ID,ID_CARD CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[dbo].PATIENT WHERE NEWPERSON_ID IS NULL
// UNION ALL
// select PERSON_ID,CARD_ID CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[dbo].PATIENT WHERE NEWPERSON_ID IS NULL
// drop table [{hos.ExecDatabase}].[dbo].tablea";
// updatezt(id, hos_id, "置空不符合规范的身份证号和医保号&&更新无医保号且无身份证号的病人" + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// //递归更新身份证或者医保号相同的主索引
// mark = (mark == 0) ? COUNT : mark;
// sql = $@"IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'table2')
// DROP TABLE [{hos.ExecDatabase}].dbo.table2
// create table [{hos.ExecDatabase}].[DBO].table2 (id int primary key identity({mark + 1},1),[code] nvarchar(200))
// insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE1(PERSON_ID,CODE,NEWPERSON_ID)select PERSON_ID,CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL
// DECLARE @COUNT int WHILE 1=1
// BEGIN
// truncate table [{hos.ExecDatabase}].[DBO].PATIENT_STORE2
// insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 (PERSON_ID,CODE,NEWPERSON_ID) select A.PERSON_ID,B.CODE,B.PERSON_ID NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 A JOIN [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL B ON A.CODE = B.CODE GROUP BY A.PERSON_ID,B.PERSON_ID,b.CODE
// insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 (PERSON_ID,CODE,NEWPERSON_ID) select A.PERSON_ID,B.CODE,B.PERSON_ID NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A JOIN [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 B ON A.NEWPERSON_ID = B.PERSON_ID GROUP BY A.PERSON_ID,B.PERSON_ID,b.CODE
// SELECT @COUNT=COUNT(1) FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A LEFT JOIN [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 B ON A.PERSON_ID = B.PERSON_ID and A.NEWPERSON_ID = B.NEWPERSON_ID AND A.CODE = B.CODE WHERE B.PERSON_ID IS NULL
// IF @COUNT=0 BREAK
// truncate table [{hos.ExecDatabase}].[DBO].PATIENT_STORE1
// INSERT intO [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 (PERSON_ID,CODE,NEWPERSON_ID) SELECT PERSON_ID,CODE,NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 GROUP BY PERSON_ID,CODE,NEWPERSON_ID
// END
// insert into [{hos.ExecDatabase}].[DBO].table2(code) SELECT DISTINCT A.NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A ORDER BY NEWPERSON_ID
// UPDATE [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 SET NEWPERSON_ID = b.id from [{hos.ExecDatabase}].[DBO].table2 b where [{hos.ExecDatabase}].[DBO].[PATIENT_STORE2].NEWPERSON_ID = b.code
// update [{hos.ExecDatabase}].[DBO].[PATIENT] set NEWPERSON_ID = b.NEWPERSON_ID from (SELECT PERSON_ID,MIN(NEWPERSON_ID) NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 GROUP BY PERSON_ID) b where [{hos.ExecDatabase}].[DBO].[PATIENT].PERSON_ID = b.PERSON_ID
// drop table [{hos.ExecDatabase}].dbo.table2";
// updatezt(id, hos_id, "递归更新身份证或者医保号相同的主索引" + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// sql = $@"UPDATE [{hos.ExecDatabase}].dbo.PATIENT SET NEWPERSON_ID = B.MASTER_INDEX FROM (SELECT A.NEWPERSON_ID,B.MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.PATIENT A JOIN [{hos.ExecDatabase}].dbo.PUB_PATIENT B ON A.ID_CARD = B.ID_CARD WHERE B.MASTER_INDEX IS NOT NULL AND B.ID_CARD LIKE '[0-9]%' AND LEN(B.ID_CARD)>=15 AND B.ID_CARD NOT LIKE '%8888%' AND B.ID_CARD NOT LIKE '%0000%' GROUP BY A.NEWPERSON_ID,B.MASTER_INDEX) B WHERE PATIENT.NEWPERSON_ID = B.NEWPERSON_ID
// UPDATE [{hos.ExecDatabase}].dbo.PATIENT SET NEWPERSON_ID = B.MASTER_INDEX FROM (SELECT A.NEWPERSON_ID,B.MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.PATIENT A JOIN ( SELECT B.CARD_ID,MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.[PUB_PATIENT] A LEFT JOIN [{hos.ExecDatabase}].dbo.OUT_REG_INFO B ON A.PERSON_CODE = B.PERSON_CODE WHERE A.MASTER_INDEX IS NOT NULL AND A.ID_CARD LIKE '[0-9]%' AND LEN(A.ID_CARD)>=15 AND A.ID_CARD NOT LIKE '%8888%' AND A.ID_CARD NOT LIKE '%0000%' AND B.CARD_ID LIKE '[0-9]%' AND LEN(B.CARD_ID)>=6 AND B.CARD_ID IS NOT NULL UNION SELECT B.CARD_ID,MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.[PUB_PATIENT] A LEFT JOIN [{hos.ExecDatabase}].dbo.INPAT_REG_INFO B ON A.PERSON_CODE = B.PERSON_CODE WHERE A.MASTER_INDEX IS NOT NULL AND A.ID_CARD LIKE '[0-9]%' AND LEN(A.ID_CARD)>=15 AND A.ID_CARD NOT LIKE '%8888%' AND A.ID_CARD NOT LIKE '%0000%' AND B.CARD_ID LIKE '[0-9]%' AND LEN(B.CARD_ID)>=6 AND B.CARD_ID IS NOT NULL ) B ON A.CARD_ID = B.CARD_ID GROUP BY A.NEWPERSON_ID,B.MASTER_INDEX ) B WHERE PATIENT.NEWPERSON_ID = B.NEWPERSON_ID";
// updatezt(id, hos_id, "同步ID_CARD或医保号相同的病人主索引.." + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// sql = $@"UPDATE [{hos.ExecDatabase}].dbo.PUB_PATIENT SET MASTER_INDEX=NEWPERSON_ID FROM (SELECT [PERSON_ID],NEWPERSON_ID FROM [{hos.ExecDatabase}].dbo.PATIENT GROUP BY [PERSON_ID], NEWPERSON_ID) TAB,[{hos.ExecDatabase}].dbo.PUB_PATIENT B WHERE B.PERSON_ID=TAB.PERSON_ID;
// ";
// updatezt(id, hos_id, "将数据更新回病人登记表.." + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
// sql = $@"DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT
// DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_NOTNULL
// DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_STORE1
// DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_STORE2";
// updatezt(id, hos_id, "删除临时表.." + sql.Replace("'", "''"), null);
// JX_zx(sql, hos_id, id, hos);
sql = $@"
select *into #id_card解码 from(
SELECT null MASTER_INDEX, PERSON_ID, CAST(ID_CARD as nvarchar) ID_CARD1 FROM [dbo].[PUB_PATIENT]
union
select null MASTER_INDEX, PERSON_ID, CAST(CAST(ID_CARD as varchar)as nvarchar) ID_CARD2 FROM [dbo].[PUB_PATIENT])A
select MASTER_INDEX,PERSON_ID,max(ID_CARD)ID_CARD into #id_card解码2 from(
select MASTER_INDEX,PERSON_ID,case when ID_CARD1 is not null and len(ID_CARD1)>=15 and len(ID_CARD1)<=18 then ID_CARD1
else null end ID_CARD From #id_card解码 )a group by MASTER_INDEX,PERSON_ID
select distinct MASTER_INDEX,PERSON_ID,
case when ID_CARD NOT LIKE '[0-9]%' OR LEN(ID_CARD)<=15 OR ID_CARD LIKE '%8888%' OR ID_CARD LIKE '%00000%' then null
else case when len(ID_CARD) >15 then ID_CARD when len(ID_CARD) >15 then ID_CARD end
end ID_CARD into #解码后 from #id_card解码2
select * into #已经分配的MASTER_INDEX from #解码后 where MASTER_INDEX is not null and ID_CARD is not null
select PERSON_ID,a.ID_CARD,case when a.MASTER_INDEX is not null then a.MASTER_INDEX else b.MASTER_INDEX end MASTER_INDEX into #身份证映射MASTER_INDEX from #解码后 a
left join (select ID_CARD, max(MASTER_INDEX)MASTER_INDEX from #已经分配的MASTER_INDEX GROUP BY ID_CARD )b on a.ID_CARD=b.ID_CARD
DECLARE @maxMASTER_INDEX int =(select isnull(max(MASTER_INDEX),0) FROM [dbo].[PUB_PATIENT] )
select*, @maxMASTER_INDEX+( ROW_NUMBER() OVER(PARTITION BY getdate() ORDER BY getdate() ) )MASTER_INDEX into #有身份证MASTER_INDEX空生成MASTER_INDEX from(
select distinct ID_CARD from #身份证映射MASTER_INDEX where ID_CARD is not null and MASTER_INDEX is null)a
update #身份证映射MASTER_INDEX set MASTER_INDEX = b.MASTER_INDEX
from #身份证映射MASTER_INDEX a join #有身份证MASTER_INDEX空生成MASTER_INDEX b on a.ID_CARD=b.ID_CARD where a.MASTER_INDEX is null
DECLARE @maxMASTER_INDEX1 int =(select isnull(max(MASTER_INDEX),0) FROM #身份证映射MASTER_INDEX)
select PERSON_ID, @maxMASTER_INDEX1+( ROW_NUMBER() OVER(PARTITION BY getdate() ORDER BY getdate() ) )MASTER_INDEX into #无身份证MASTER_INDEX空生成MASTER_INDEX from(
select distinct PERSON_ID from #身份证映射MASTER_INDEX where MASTER_INDEX is null)a
update #身份证映射MASTER_INDEX set MASTER_INDEX = b.MASTER_INDEX
from #身份证映射MASTER_INDEX a join #无身份证MASTER_INDEX空生成MASTER_INDEX b on a.PERSON_ID=b.PERSON_ID where a.MASTER_INDEX is null
update [dbo].[PUB_PATIENT] set MASTER_INDEX=b.MASTER_INDEX
from [dbo].[PUB_PATIENT] a
join #身份证映射MASTER_INDEX b on a.PERSON_ID=b.PERSON_ID where a.MASTER_INDEX is null
";
updatezt(id, hos_id, "MASTER_INDEX更新", null);
JX_zx(sql, hos_id, id, hos);
//判断病人表中主索引列是否有值
sql = @$" SELECT CASE WHEN MAX(MASTER_INDEX) IS NULL THEN 0 ELSE MAX(MASTER_INDEX) END id FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT where MASTER_INDEX is not null; ";
updatezt(id, hos_id, "判断病人表中主索引列是否有值" + sql.Replace("'", "''"), null);
int COUNT = JX_zx_int(sql, hos_id, id, hos);
sql = @$" SELECT COUNT(1) id FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT where MASTER_INDEX is null ";
int COUNT_ROW = JX_zx_int(sql, hos_id, id, hos);
if (COUNT_ROW != 0)
{
//将病人的医保号和身份证号集中放在一张表中
sql = $@"truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT
truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL
truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_STORE1
truncate TABLE [{hos.ExecDatabase}].[DBO].PATIENT_STORE2
insert into [{hos.ExecDatabase}].[DBO].PATIENT(PERSON_ID,ID_CARD,CARD_ID,NEWPERSON_ID)
SELECT TAB.PERSON_ID, CAST(ID_CARD AS NVARCHAR(100))ID_CARD, CARD_ID ,NULL NEWPERSON_ID FROM
(SELECT PERSON_ID,ID_CARD FROM [{hos.ExecDatabase}].[DBO].PUB_PATIENT WHERE [MASTER_INDEX] IS NULL ) TAB
LEFT JOIN (SELECT PERSON_ID, CARD_ID FROM (SELECT DJ.PERSON_ID, CARD_ID FROM [{hos.ExecDatabase}].[DBO].[OUT_REG_INFO] DJ GROUP BY DJ.PERSON_ID, CARD_ID
UNION
SELECT DJ.PERSON_ID, CARD_ID FROM [{hos.ExecDatabase}].[DBO].[INPAT_REG_INFO] DJ GROUP BY DJ.PERSON_ID,CARD_ID) TA ) TAB1
ON TAB.PERSON_ID=TAB1.PERSON_ID GROUP BY TAB.PERSON_ID,ID_CARD,CARD_ID;";
updatezt(id, hos_id, "将病人的医保号和身份证号集中放在一张表中" + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
//获取最大的master_index的值
sql = @$" select case when max(NEWPERSON_ID) is null then 0 else max(NEWPERSON_ID) end id from [{hos.ExecDatabase}].[dbo].[PATIENT]";
updatezt(id, hos_id, "获取最大的master_index的值" + sql.Replace("'", "''"), null);
int mark = JX_zx_int(sql, hos_id, id, hos);
//置空不符合规范的身份证号和医保号
//更新无医保号且无身份证号的病人
sql = $@"IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'tablea')
DROP TABLE [{hos.ExecDatabase}].dbo.tablea
UPDATE [{hos.ExecDatabase}].[dbo].PATIENT SET ID_CARD = NULL WHERE ID_CARD NOT LIKE '[0-9]%' OR LEN(ID_CARD)<=15 OR ID_CARD LIKE '%8888%' OR ID_CARD LIKE '%00000%'
UPDATE [{hos.ExecDatabase}].[dbo].PATIENT SET CARD_ID = NULL WHERE CARD_ID NOT LIKE '[0-9]%' OR LEN(CARD_ID)<6
create table [{hos.ExecDatabase}].[dbo].tablea (id int primary key identity({COUNT + mark + 1},1),[code] nvarchar(200))
insert into [{hos.ExecDatabase}].[dbo].tablea(code)
select distinct person_id from [{hos.ExecDatabase}].[dbo].[PATIENT] WHERE ID_CARD IS NULL AND CARD_ID IS NULL
update [{hos.ExecDatabase}].[dbo].[PATIENT] set NEWPERSON_ID = b.id from [{hos.ExecDatabase}].[dbo].tablea b where [{hos.ExecDatabase}].[dbo].[PATIENT].PERSON_ID = b.code
insert into [{hos.ExecDatabase}].[dbo].PATIENT_NOTNULL(PERSON_ID,CODE,NEWPERSON_ID)
select PERSON_ID,ID_CARD CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[dbo].PATIENT WHERE NEWPERSON_ID IS NULL
UNION ALL
select PERSON_ID,CARD_ID CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[dbo].PATIENT WHERE NEWPERSON_ID IS NULL
drop table [{hos.ExecDatabase}].[dbo].tablea";
updatezt(id, hos_id, "置空不符合规范的身份证号和医保号&&更新无医保号且无身份证号的病人" + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
//递归更新身份证或者医保号相同的主索引
mark = (mark == 0) ? COUNT : mark;
sql = $@"IF EXISTS(SELECT * FROM [{hos.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'table2')
DROP TABLE [{hos.ExecDatabase}].dbo.table2
create table [{hos.ExecDatabase}].[DBO].table2 (id int primary key identity({mark + 1},1),[code] nvarchar(200))
insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE1(PERSON_ID,CODE,NEWPERSON_ID)select PERSON_ID,CODE, NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL
DECLARE @COUNT int WHILE 1=1
BEGIN
truncate table [{hos.ExecDatabase}].[DBO].PATIENT_STORE2
insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 (PERSON_ID,CODE,NEWPERSON_ID) select A.PERSON_ID,B.CODE,B.PERSON_ID NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 A JOIN [{hos.ExecDatabase}].[DBO].PATIENT_NOTNULL B ON A.CODE = B.CODE GROUP BY A.PERSON_ID,B.PERSON_ID,b.CODE
insert into [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 (PERSON_ID,CODE,NEWPERSON_ID) select A.PERSON_ID,B.CODE,B.PERSON_ID NEWPERSON_ID from [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A JOIN [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 B ON A.NEWPERSON_ID = B.PERSON_ID GROUP BY A.PERSON_ID,B.PERSON_ID,b.CODE
SELECT @COUNT=COUNT(1) FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A LEFT JOIN [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 B ON A.PERSON_ID = B.PERSON_ID and A.NEWPERSON_ID = B.NEWPERSON_ID AND A.CODE = B.CODE WHERE B.PERSON_ID IS NULL
IF @COUNT=0 BREAK
truncate table [{hos.ExecDatabase}].[DBO].PATIENT_STORE1
INSERT intO [{hos.ExecDatabase}].[DBO].PATIENT_STORE1 (PERSON_ID,CODE,NEWPERSON_ID) SELECT PERSON_ID,CODE,NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 GROUP BY PERSON_ID,CODE,NEWPERSON_ID
END
insert into [{hos.ExecDatabase}].[DBO].table2(code) SELECT DISTINCT A.NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 A ORDER BY NEWPERSON_ID
UPDATE [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 SET NEWPERSON_ID = b.id from [{hos.ExecDatabase}].[DBO].table2 b where [{hos.ExecDatabase}].[DBO].[PATIENT_STORE2].NEWPERSON_ID = b.code
update [{hos.ExecDatabase}].[DBO].[PATIENT] set NEWPERSON_ID = b.NEWPERSON_ID from (SELECT PERSON_ID,MIN(NEWPERSON_ID) NEWPERSON_ID FROM [{hos.ExecDatabase}].[DBO].PATIENT_STORE2 GROUP BY PERSON_ID) b where [{hos.ExecDatabase}].[DBO].[PATIENT].PERSON_ID = b.PERSON_ID
drop table [{hos.ExecDatabase}].dbo.table2";
updatezt(id, hos_id, "递归更新身份证或者医保号相同的主索引" + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
sql = $@"UPDATE [{hos.ExecDatabase}].dbo.PATIENT SET NEWPERSON_ID = B.MASTER_INDEX FROM (SELECT A.NEWPERSON_ID,B.MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.PATIENT A JOIN [{hos.ExecDatabase}].dbo.PUB_PATIENT B ON A.ID_CARD = B.ID_CARD WHERE B.MASTER_INDEX IS NOT NULL AND B.ID_CARD LIKE '[0-9]%' AND LEN(B.ID_CARD)>=15 AND B.ID_CARD NOT LIKE '%8888%' AND B.ID_CARD NOT LIKE '%0000%' GROUP BY A.NEWPERSON_ID,B.MASTER_INDEX) B WHERE PATIENT.NEWPERSON_ID = B.NEWPERSON_ID
UPDATE [{hos.ExecDatabase}].dbo.PATIENT SET NEWPERSON_ID = B.MASTER_INDEX FROM (SELECT A.NEWPERSON_ID,B.MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.PATIENT A JOIN ( SELECT B.CARD_ID,MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.[PUB_PATIENT] A LEFT JOIN [{hos.ExecDatabase}].dbo.OUT_REG_INFO B ON A.PERSON_CODE = B.PERSON_CODE WHERE A.MASTER_INDEX IS NOT NULL AND A.ID_CARD LIKE '[0-9]%' AND LEN(A.ID_CARD)>=15 AND A.ID_CARD NOT LIKE '%8888%' AND A.ID_CARD NOT LIKE '%0000%' AND B.CARD_ID LIKE '[0-9]%' AND LEN(B.CARD_ID)>=6 AND B.CARD_ID IS NOT NULL UNION SELECT B.CARD_ID,MASTER_INDEX FROM [{hos.ExecDatabase}].dbo.[PUB_PATIENT] A LEFT JOIN [{hos.ExecDatabase}].dbo.INPAT_REG_INFO B ON A.PERSON_CODE = B.PERSON_CODE WHERE A.MASTER_INDEX IS NOT NULL AND A.ID_CARD LIKE '[0-9]%' AND LEN(A.ID_CARD)>=15 AND A.ID_CARD NOT LIKE '%8888%' AND A.ID_CARD NOT LIKE '%0000%' AND B.CARD_ID LIKE '[0-9]%' AND LEN(B.CARD_ID)>=6 AND B.CARD_ID IS NOT NULL ) B ON A.CARD_ID = B.CARD_ID GROUP BY A.NEWPERSON_ID,B.MASTER_INDEX ) B WHERE PATIENT.NEWPERSON_ID = B.NEWPERSON_ID";
updatezt(id, hos_id, "同步ID_CARD或医保号相同的病人主索引.." + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
sql = $@"UPDATE [{hos.ExecDatabase}].dbo.PUB_PATIENT SET MASTER_INDEX=NEWPERSON_ID FROM (SELECT [PERSON_ID],NEWPERSON_ID FROM [{hos.ExecDatabase}].dbo.PATIENT GROUP BY [PERSON_ID], NEWPERSON_ID) TAB,[{hos.ExecDatabase}].dbo.PUB_PATIENT B WHERE B.PERSON_ID=TAB.PERSON_ID;
";
updatezt(id, hos_id, "将数据更新回病人登记表.." + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
sql = $@"DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT
DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_NOTNULL
DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_STORE1
DROP TABLE[{ hos.ExecDatabase}].dbo.PATIENT_STORE2";
updatezt(id, hos_id, "删除临时表.." + sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
}
}
}
public void JX_DIC_DIAG(int id, int hos_id)
{
var sql = "";
......@@ -428,7 +471,7 @@ public void JX_ADD_DA_Disease(int id, int hos_id)
}
sql = @$" insert into {fwq}[SV_DATA_CONFIG].[dbo].[DA_Disease](HospitalID,[HOSPITAL_DISEASE],[IS_FILTER])
select DISTINCT {hos_id} ,DISEASE_NAME ,0 from [{hos.ExecDatabase}].[dbo].[DIC_DIAG_GATHER] A
LEFT JOIN {fwq}[SV_DATA_CONFIG].[dbo].[DA_Disease] B ON A.DISEASE_NAME=B.HOSPITAL_DISEASE WHERE B.ID IS NULL;
LEFT JOIN [{hos.ExecDatabase}].[dbo].[DA_Disease] B ON A.DISEASE_NAME=B.HOSPITAL_DISEASE WHERE B.ID IS NULL;
";
updatezt(id, hos_id, sql.Replace("'", "''"), null);
JX_zx(sql, hos_id, id, hos);
......@@ -757,6 +800,8 @@ public void JX_REMOVE_CARD_TYPE(int id, int hos_id)
服务器 fwq = Connection(181).Query<服务器>($"SELECT [服务器ip],[数据库账号],[数据库密码] FROM[SV_QueryPlatform].[dbo].[服务器] where[服务器ip] ='{hos.ExecOpenLink}'").FirstOrDefault();
var msConnectionString = string.Format("Server={0};Database={1};User ID={2};Password={3};Trusted_Connection=False;", hos.ExecOpenLink, hos.ExecDatabase, fwq.数据库账号, fwq.数据库密码);
var fwqip = hos.ExecOpenLink=="192.168.18.156"?"" :@$"[{hos.ExecOpenLink}].";
sql = $@"
INSERT intO DB_SV_DATA_CONFIG.[dbo].[DA_CARD_TYPE]
(CARDTYPE,[HOS_CODE],update_time)
......@@ -764,11 +809,11 @@ public void JX_REMOVE_CARD_TYPE(int id, int hos_id)
FROM DB_SV_DATA_CONFIG.dbo.[DA_CARD_TYPE] t1
RIGHT JOIN (
SELECT CARD_TYPE,ORG_CODE
FROM [{hos.ExecOpenLink}].[{hos.ExecDatabase}].[DBO].[OUT_REG_INFO] a
FROM {fwqip}[{hos.ExecDatabase}].[DBO].[OUT_REG_INFO] a
GROUP BY a.CARD_TYPE,a.ORG_CODE
UNION
SELECT CARD_TYPE,ORG_CODE
FROM [{hos.ExecOpenLink}].[{hos.ExecDatabase}].[DBO].[INPAT_REG_INFO] b
FROM {fwqip}[{hos.ExecDatabase}].[DBO].[INPAT_REG_INFO] b
GROUP BY b.CARD_TYPE,b.ORG_CODE) t2
ON t1.CARDTYPE = t2.CARD_TYPE
WHERE t1.id IS NULL and t2.CARD_TYPE is not null; ";
......@@ -800,17 +845,17 @@ public void JX_INSERT_CATEGORY(int id, int hos_id)
hos = Connection(156, "DB_SV_Data_Config", "SV_DATA_CONFIG").Query<SYS_Hospital>(sql).FirstOrDefault();
服务器 fwq = Connection(181).Query<服务器>($"SELECT [服务器ip],[数据库账号],[数据库密码] FROM[SV_QueryPlatform].[dbo].[服务器] where[服务器ip] ='{hos.ExecOpenLink}'").FirstOrDefault();
var msConnectionString = string.Format("Server={0};Database={1};User ID={2};Password={3};Trusted_Connection=False;", hos.ExecOpenLink, hos.ExecDatabase, fwq.数据库账号, fwq.数据库密码);
var fwqip = hos.ExecOpenLink == "192.168.18.156" ? "" : @$"[{hos.ExecOpenLink}].";
sql = $@"INSERT intO [DB_SV_Data_Config].[dbo].[DA_Hos_Category]
([category],[HospitalID])
SELECT t2.category,org_code
FROM [DB_SV_Data_Config].dbo.DA_Hos_Category t1
RIGHT JOIN (SELECT category,org_code
FROM [{hos.ExecOpenLink}].[{hos.ExecDatabase}].[dbo].[OUT_FEE]
FROM {fwqip}[{hos.ExecDatabase}].[dbo].[OUT_FEE]
GROUP BY category,org_code
UNION
SELECT category,org_code
FROM [{hos.ExecOpenLink}].[{hos.ExecDatabase}].[dbo].INPAT_FEE
FROM {fwqip}[{hos.ExecDatabase}].[dbo].INPAT_FEE
GROUP BY category,org_code) t2
ON t1.category = t2.category
WHERE t1.id IS NULL and t2.category is not null;";
......
......@@ -134,7 +134,9 @@ public void updateCOMPLETE_MARK(long Indexs, long COMPLETE_MARK)
DbConnection configConnection = new SqlConnection(_configConnectionString);
if (COMPLETE_MARK == 22)
{
configConnection.Execute(@$"update [SV_QueryPlatform_].[dbo].[MEDIC_SEARCH_RECORD] set COMPLETE_MARK = 22,END_TIME=getdate() where COMPLETE_MARK != 22 and id= {Indexs}");
configConnection.Execute(@$"
EXEC SV_QueryPlatform_.[dbo].[MEDIC_PERSON_INFORMATION处理] @indexs ={Indexs}
update [SV_QueryPlatform_].[dbo].[MEDIC_SEARCH_RECORD] set COMPLETE_MARK = 22,END_TIME=getdate() where COMPLETE_MARK != 22 and id= {Indexs}");
}
if (COMPLETE_MARK == 21)
{
......@@ -196,16 +198,18 @@ public void Diseasequery(long type1_2, string icd_or_diseaseCondition, long Inde
{
sql2 = $@" IF EXISTS(SELECT * FROM [{item.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'MEDIC_PERSON_INFORMATION_{Indexs}')
drop table [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs};
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,1 REG_SOURCE,A.REG_TIME, {Indexs}Indexs,a.org_Code hos_id,C.BIRTHDAY,C.SEX,1 TYPE,A.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs} FROM
{item.ExecDatabase}.[DBO].OUT_REG_INFO A ,
(SELECT DISTINCT REG_ID FROM
{item.ExecDatabase}.[DBO].OUT_DIAG WHERE {icd_or_diseaseCondition}) B,
{item.ExecDatabase}.[DBO].PUB_PATIENT C WHERE A.REG_ID=B.REG_ID AND A.PERSON_ID=C.PERSON_ID
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,1 REG_SOURCE,A.REG_TIME, {Indexs}Indexs,a.org_Code hos_id,C.BIRTHDAY,C.SEX,1 TYPE,A.DEPT_NAME
into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}
FROM {item.ExecDatabase}.[DBO].OUT_REG_INFO A ,
(SELECT DISTINCT REG_CODE FROM {item.ExecDatabase}.[DBO].OUT_DIAG WHERE {icd_or_diseaseCondition}) B,
{item.ExecDatabase}.[DBO].PUB_PATIENT C
WHERE A.REG_CODE=B.REG_CODE AND A.PERSON_CODE=C.PERSON_CODE
UNION ALL
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,2 REG_SOURCE,A.INHOS_TIME,{Indexs},a.org_Code hos_id,C.BIRTHDAY,C.SEX,1 TYPE,A.OUT_DEPT_NAME FROM
{item.ExecDatabase}.[DBO].INPAT_REG_INFO A , (SELECT DISTINCT REG_ID FROM {item.ExecDatabase}.[DBO].INPAT_DIAG WHERE {icd_or_diseaseCondition}) B,
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,2 REG_SOURCE,A.INHOS_TIME,{Indexs},a.org_Code hos_id,C.BIRTHDAY,C.SEX,1 TYPE,A.OUT_DEPT_NAME
FROM {item.ExecDatabase}.[DBO].INPAT_REG_INFO A ,
(SELECT DISTINCT REG_CODE FROM {item.ExecDatabase}.[DBO].INPAT_DIAG WHERE {icd_or_diseaseCondition}) B,
{item.ExecDatabase}.[DBO].PUB_PATIENT C
WHERE A.REG_ID=B.REG_ID AND A.PERSON_ID=C.PERSON_ID";
WHERE A.REG_CODE=B.REG_CODE AND A.PERSON_CODE=C.PERSON_CODE";
conn.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@" insert into [SV_QueryPlatform_].[dbo].MEDIC_PERSON_INFORMATION_{Indexs }
( [HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],
......@@ -223,12 +227,12 @@ UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,1 REG_SOURCE,B.REG_TIME,A.BIRTHDAY,A.SEX,2 TYPE, {Indexs} Indexs , b.org_code hos_id,B.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].OUT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS= {Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX
UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,2 REG_SOURCE,B.INHOS_TIME,A.BIRTHDAY,A.SEX,2 TYPE,{Indexs} , b.org_code,B.OUT_DEPT_NAME
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].INPAT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS={Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX ;";
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX ;";
conn.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@"INSERT into [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}]([HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],AREA_ID,[INDEXS],[TYPE],[DEPT_NAME])
select [HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],null,
......@@ -239,7 +243,7 @@ UNION ALL
INNER JOIN (SELECT * FROM [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS = {Indexs}
AND HOS_ID =cast(right('{item.ExecDatabase}',3)as int) AND TYPE = 1) N
ON M.INDEXS = N.INDEXS AND M.HOS_ID = N.HOS_ID AND M.MASTER_INDEX = N.MASTER_INDEX
AND M.PERSON_ID = N.PERSON_ID AND M.REG_ID = N.REG_ID
AND M.PERSON_CODE = N.PERSON_CODE AND M.REG_CODE= N.REG_CODE
AND M.REG_SOURCE = N.REG_SOURCE AND M.TYPE = 2 ;";
num = num + configConnection.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@" drop table [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2;";
......@@ -256,9 +260,9 @@ UNION ALL
}
catch (Exception ex)
{
configConnection.Execute(@$"update [SV_QueryPlatform].[dbo].[MEDIC_SEARCH_RECORD] set COMPLETE_MARK = 23,END_TIME=getdate(),log='{sql2.Replace("'", "''")}' where COMPLETE_MARK != 22 and id= " + Indexs);
configConnection.Execute(@$"update [SV_QueryPlatform_].[dbo].[MEDIC_SEARCH_RECORD] set COMPLETE_MARK = 23,END_TIME=getdate(),log='{sql2.Replace("'", "''")}' where COMPLETE_MARK != 22 and id= " + Indexs);
HomeQueries home = new HomeQueries(_configConnectionString);
home.SendMail(@$"药品/疾病/材料平台提醒", @$"疾病拉取失败 {icd_or_diseaseCondition} 错误日志:{ex.ToString().Replace("'", "''")}", zxr);
home.SendMail(@$"药品/疾病/材料平台提醒", @$"疾病拉取失败 {icd_or_diseaseCondition} 错误日志:{ex.ToString().Replace("'", "''")}", "唐仲阳");
}
}
......@@ -344,18 +348,22 @@ public void Drugquery(long typefee, long type1_2, string drugs, string[] drugNam
A.REG_TIME,B.ID AREA_ID,{Indexs} INDEXS,cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ) HOS_ID,
C.BIRTHDAY,C.SEX,1 TYPE,A.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}
FROM {item.ExecDatabase}.[dbo].OUT_REG_INFO A
JOIN (SELECT DISTINCT REG_ID,D.ID FROM {item.ExecDatabase}.[dbo].{mzb} E join [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] D ON E.ITEM_NAME = D.ITEM_NAME
AND ISNULL(E.MEDIC_AREA,'') = ISNULL(D.MEDIC_AREA,'') AND INDEXS={Indexs} AND HOS_ID = cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ))B ON A.REG_ID = B.REG_ID
JOIN {item.ExecDatabase}.[dbo].PUB_PATIENT C ON A.PERSON_ID = C.PERSON_ID
UNION ALL
JOIN (SELECT DISTINCT REG_CODE,D.ID FROM {item.ExecDatabase}.[dbo].{mzb} E
join [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] D ON {(typefee==1?"E.ITEM_NAME": "REPLACE(REPLACE(E.MEDIC_GENERAL_NAME,E.MEDIC_SPEC,''),' ','')")} = D.ITEM_NAME AND ISNULL(E.MEDIC_AREA,'') = ISNULL(D.MEDIC_AREA,'') AND INDEXS={Indexs} AND HOS_ID = cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ))B
ON A.REG_CODE = B.REG_CODE
JOIN {item.ExecDatabase}.[dbo].PUB_PATIENT C ON A.PERSON_CODE = C.PERSON_CODE
WHERE A.REG_CODE = B.REG_CODE AND A.PERSON_CODE = C.PERSON_CODE
UNION ALL
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,'2' REG_SOURCE,
A.INHOS_TIME,B.ID AREA_ID,{Indexs} INDEXS,cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ) HOS_ID,
C.BIRTHDAY,C.SEX,1 TYPE,A.OUT_DEPT_NAME
FROM {item.ExecDatabase}.[dbo].INPAT_REG_INFO A
JOIN(SELECT DISTINCT REG_ID,D.ID FROM {item.ExecDatabase}.[dbo].{zyb} E JOIN [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] D ON E.ITEM_NAME = D.ITEM_NAME
AND ISNULL(E.MEDIC_AREA,'') = ISNULL(D.MEDIC_AREA,'') AND INDEXS={Indexs} AND HOS_ID = cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ))B ON A.REG_ID = B.REG_ID
JOIN {item.ExecDatabase}.[dbo].PUB_PATIENT C ON A.PERSON_ID = C.PERSON_ID
WHERE A.REG_ID = B.REG_ID AND A.PERSON_ID = C.PERSON_ID";
JOIN(SELECT DISTINCT REG_CODE,D.ID FROM {item.ExecDatabase}.[dbo].{zyb} E
JOIN [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] D ON {(typefee == 1 ? "E.ITEM_NAME" : "REPLACE(REPLACE(E.ITEM_NAME,E.MEDIC_SPEC,''),' ','')")} = D.ITEM_NAME
AND ISNULL(E.MEDIC_AREA,'') = ISNULL(D.MEDIC_AREA,'') AND INDEXS={Indexs} AND HOS_ID = cast( RIGHT ( '{item.ExecDatabase}', 3 ) AS int ))B
ON A.REG_CODE = B.REG_CODE
JOIN {item.ExecDatabase}.[dbo].PUB_PATIENT C ON A.PERSON_CODE = C.PERSON_CODE
WHERE A.REG_CODE = B.REG_CODE AND A.PERSON_CODE = C.PERSON_CODE";
num = num + conn.Execute(sql3, commandTimeout: 60 * 60 * 5);
......@@ -371,12 +379,12 @@ UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,1 REG_SOURCE,B.REG_TIME,A.BIRTHDAY,A.SEX,2 TYPE, {Indexs} Indexs , b.org_code hos_id,B.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].OUT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS= {Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX
UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,2 REG_SOURCE,B.INHOS_TIME,A.BIRTHDAY,A.SEX,2 TYPE,{Indexs} , b.org_code,B.OUT_DEPT_NAME
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].INPAT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS={Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX;";
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX;";
conn.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@"INSERT into [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}]([HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],AREA_ID,[INDEXS],[TYPE],[DEPT_NAME])
select [HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],null,[INDEXS],[TYPE],[DEPT_NAME] From [{item.ExecOpenLink}].[{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2";
......@@ -385,7 +393,7 @@ UNION ALL
INNER JOIN (SELECT * FROM [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS = {Indexs}
AND HOS_ID =cast(right('{item.ExecDatabase}',3)as int) AND TYPE = 1) N
ON M.INDEXS = N.INDEXS AND M.HOS_ID = N.HOS_ID AND M.MASTER_INDEX = N.MASTER_INDEX
AND M.PERSON_ID = N.PERSON_ID AND M.REG_ID = N.REG_ID
AND M.PERSON_CODE = N.PERSON_CODE AND M.REG_CODE = N.REG_CODE
AND M.REG_SOURCE = N.REG_SOURCE AND M.TYPE = 2 ;";
num = num + configConnection.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@" drop table [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2;";
......@@ -489,25 +497,30 @@ public long ItemQuery()
{
var sql3 = $@"IF EXISTS(SELECT * FROM [{item.ExecDatabase}].dbo.SYSOBJECTS WHERE NAME = 'MEDIC_PERSON_INFORMATION_{Indexs}')
drop table [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs};
SELECT C.MASTER_INDEX MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,'1'REG_SOURCE,A.REG_TIME,B.ID AREA_ID, {Indexs} INDEXS,cast(right('{item.ExecDatabase}',3)as int) HOS_ID,C.BIRTHDAY,C.SEX,1 TYPE,A.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs} FROM
{item.ExecDatabase}.[DBO].OUT_REG_INFO A, (SELECT DISTINCT REG_ID,D.ID FROM {item.ExecDatabase}.[DBO].OUT_FEE E,
{item.ExecDatabase}.[DBO].OUT_REG_INFO A,
(SELECT DISTINCT REG_CODE,D.ID FROM {item.ExecDatabase}.[DBO].OUT_FEE E,
(SELECT * FROM [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] WHERE INDEXS={Indexs} AND (MEDIC_AREA IS NULL OR MEDIC_AREA ='')) D
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME
UNION ALL
SELECT DISTINCT REG_ID,D.ID FROM {item.ExecDatabase}.[DBO].OUT_FEE E,
UNION ALL
SELECT DISTINCT REG_CODE,D.ID FROM {item.ExecDatabase}.[DBO].OUT_FEE E,
(SELECT * FROM [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] WHERE INDEXS= {Indexs} AND MEDIC_AREA IS NOT NULL AND MEDIC_AREA!='') D
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME AND E.MEDIC_AREA=D.MEDIC_AREA ) B,{item.ExecDatabase}.[DBO].PUB_PATIENT C
WHERE A.REG_ID=B.REG_ID AND A.PERSON_ID=C.PERSON_ID
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME AND E.MEDIC_AREA=D.MEDIC_AREA) B,{item.ExecDatabase}.[DBO].PUB_PATIENT C
WHERE A.REG_CODE=B.REG_CODE AND A.PERSON_CODE=C.PERSON_CODE
UNION ALL
SELECT C.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,A.REG_CODE,A.REG_ID,2 REG_SOURCE,A.INHOS_TIME,B.ID,{Indexs} ,cast(right('{item.ExecDatabase}',3)as int),C.BIRTHDAY,C.SEX,1,A.OUT_DEPT_NAME FROM
{item.ExecDatabase}.[DBO].INPAT_REG_INFO A,
(SELECT DISTINCT REG_ID,D.ID FROM {item.ExecDatabase}.[DBO].INPAT_FEE E,
(SELECT DISTINCT REG_CODE,D.ID FROM {item.ExecDatabase}.[DBO].INPAT_FEE E,
(SELECT * FROM [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] WHERE INDEXS= {Indexs} AND (MEDIC_AREA IS NULL OR MEDIC_AREA ='')) D
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME
UNION ALL
SELECT DISTINCT REG_ID,D.ID FROM [DBO].INPAT_FEE E,
SELECT DISTINCT REG_CODE,D.ID FROM [DBO].INPAT_FEE E,
(SELECT * FROM [192.168.18.181].[SV_QueryPlatform_].[dbo].[MEDIC_AREA_{Indexs}] WHERE INDEXS= {Indexs} AND MEDIC_AREA IS NOT NULL AND MEDIC_AREA!='') D
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME AND E.MEDIC_AREA=D.MEDIC_AREA) B, [DBO].PUB_PATIENT C WHERE A.REG_ID=B.REG_ID AND A.PERSON_ID=C.PERSON_ID";
WHERE HOS_ID = cast(right('{item.ExecDatabase}',3)as int) AND E.ITEM_NAME=D.ITEM_NAME AND E.MEDIC_AREA=D.MEDIC_AREA) B,{item.ExecDatabase}.[DBO].PUB_PATIENT C
WHERE A.REG_CODE=B.REG_CODE AND A.PERSON_CODE=C.PERSON_CODE";
num = num + conn.Execute(sql3, commandTimeout: 60 * 60 * 5);
......@@ -523,12 +536,12 @@ UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,1 REG_SOURCE,B.REG_TIME,A.BIRTHDAY,A.SEX,2 TYPE, {Indexs} Indexs , b.org_code hos_id,B.DEPT_NAME into [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].OUT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS= {Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX
UNION ALL
SELECT A.MASTER_INDEX,A.PERSON_CODE,A.PERSON_ID,B.REG_CODE,B.REG_ID,2 REG_SOURCE,B.INHOS_TIME,A.BIRTHDAY,A.SEX,2 TYPE,{Indexs} , b.org_code,B.OUT_DEPT_NAME
FROM {item.ExecDatabase}.[DBO].PUB_PATIENT A, {item.ExecDatabase}.[DBO].INPAT_REG_INFO B,
(SELECT DISTINCT MASTER_INDEX FROM {item.ExecDatabase}.[DBO].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS={Indexs} AND HOS_ID = cast(right('{item.ExecDatabase}',3)as int)) C
WHERE A.PERSON_ID=B.PERSON_ID AND A.MASTER_INDEX=C.MASTER_INDEX;";
WHERE A.PERSON_CODE=B.PERSON_CODE AND A.MASTER_INDEX=C.MASTER_INDEX;";
conn.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@"INSERT into [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}]([HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],AREA_ID,[INDEXS],[TYPE],[DEPT_NAME])
select [HOS_ID],[MASTER_INDEX],[BIRTHDAY],[SEX],[PERSON_CODE],[PERSON_ID],[REG_CODE],[REG_ID],[REG_SOURCE],[REG_TIME],null,[INDEXS],[TYPE],[DEPT_NAME] From [{item.ExecOpenLink}].[{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2";
......@@ -537,7 +550,7 @@ UNION ALL
INNER JOIN (SELECT * FROM [SV_QueryPlatform_].[dbo].[MEDIC_PERSON_INFORMATION_{Indexs}] WHERE INDEXS = {Indexs}
AND HOS_ID =cast(right('{item.ExecDatabase}',3)as int) AND TYPE = 1) N
ON M.INDEXS = N.INDEXS AND M.HOS_ID = N.HOS_ID AND M.MASTER_INDEX = N.MASTER_INDEX
AND M.PERSON_ID = N.PERSON_ID AND M.REG_ID = N.REG_ID
AND M.PERSON_CODE = N.PERSON_CODE AND M.REG_CODE = N.REG_CODE
AND M.REG_SOURCE = N.REG_SOURCE AND M.TYPE = 2 ;";
num = num + configConnection.Execute(sql2, commandTimeout: 60 * 60 * 5);
sql2 = $@" drop table [{item.ExecDatabase}].[dbo].MEDIC_PERSON_INFORMATION_{Indexs}_2;";
......
......@@ -1394,7 +1394,7 @@ public void PullData(long indexs, string DatabaseName, string tableName)
}
finally
{
Connection(181).Execute(@$"UPDATE @DBName.dbo.PUB_PATIENT
var sql = @$"UPDATE @DBName.dbo.PUB_PATIENT
SET MASTER_INDEX = CONCAT(MASTER_INDEX, '_', ORG_CODE), PERSON_CODE = CONCAT(PERSON_CODE, '_', ORG_CODE)
FROM @DBName.dbo.PUB_PATIENT;
......@@ -1481,7 +1481,8 @@ UPDATE @DBName.dbo.ASSAY_REPORT
UPDATE @DBName.dbo.ASSAY_REPORT
SET REG_ID = B.REG_ID
FROM @DBName.dbo.INPAT_REG_INFO B
WHERE @DBName.dbo.ASSAY_REPORT.REG_CODE = B.REG_CODE AND @DBName.dbo.ASSAY_REPORT.ORG_CODE = B.ORG_CODE AND REG_SOURCE = 2; ".Replace("@DBName", DatabaseName));//拉取完成
WHERE @DBName.dbo.ASSAY_REPORT.REG_CODE = B.REG_CODE AND @DBName.dbo.ASSAY_REPORT.ORG_CODE = B.ORG_CODE AND REG_SOURCE = 2; ".Replace("@DBName", DatabaseName);
Connection(181).Execute(sql , commandTimeout: 60 * 60 * 60 * 5);//拉取完成
}
Connection(181).Execute($"UPDATE [SV_QueryPlatform].[dbo].[FlowReservoirStatus] SET state =5 WHERE indexs={indexs} and tableName='{tableName.Replace(" ", "")}'");//拉取完成
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment