体检系统架构
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

158 lines
4.8 KiB

-- 收费项目
-- 0、全部导入
TRUNCATE TABLE Dict_FeeItem
SET IDENTITY_INSERT dbo.Dict_FeeItem ON
INSERT INTO Dict_FeeItem
(ID, FeeItemCode, SpellCode, Unit)
SELECT
A.Id,
A.HISCheckCode AS FeeItemCode,
A.PYM AS SpellCode,
A.UnitName AS Unit
FROM
peis.dbo.FeeItem A
SET IDENTITY_INSERT dbo.Dict_FeeItem OFF
-- 套餐收费项目
TRUNCATE TABLE [Dict_PackToFeeItem]
SET IDENTITY_INSERT dbo.[Dict_PackToFeeItem] ON
INSERT INTO [Dict_PackToFeeItem]
([ID], [PID], [FID], [Seq], [CreateTime], [CreatorCode], [Creator])
SELECT[Id], [ExamPackId] AS PID, [FeeItemId] AS FID, [SortNo] AS SEQ,CreateTime= '2024-05-24', CreatorCode='0513',Creator= '赵翠回'
FROM PEIS. [dbo].[ExamPackFeeItem]
SET IDENTITY_INSERT dbo.[Dict_PackToFeeItem] OFF
-- 数据重置完成后
-- 根据FeeItemCode对照HIS 同步keyno
update [Dict_FeeItem] set keyno =b.keyno -- select *
from Dict_FeeItem a
left join vi_HisFeeItem b on a.FeeItemCode=b.feeitemcode
where b.DeptCode in ( select DISTINCT HISCode from Dict_Dept ) -- and a.KeyNo is null
-- 1、 HIS中未开展的项目-改为自定义项目,修改自定义编码
TRUNCATE TABLE [Dict_PeisFeeItem]
SET IDENTITY_INSERT dbo.[Dict_PeisFeeItem] ON
INSERT INTO [dbo].[Dict_PeisFeeItem]([ID], [FeeItemCode], [FeeItemName], [SpellCode], [Price], [DeptCode], [DeptName], [UnitName], [ItemClass], [Unit], [KeyNo] )
select ID
, 'F'+ CAST(ID as varchar) AS [FeeItemCode]
, name as [FeeItemName]
,PYM as [SpellCode]
,CostPrice as [Price]
,'' as [DeptCode]
,DepartmentName as [DeptName]
,UnitName
,ItemType as [ItemClass]
,UnitName as [Unit]
,'T'+ CAST(ID as varchar) AS [KeyNo]
FROM PEIS.dbo.FeeItem WHERE ID IN (SELECT id FROM [Dict_FeeItem] WHERE KeyNo is null or keyno='')
SET IDENTITY_INSERT dbo.[Dict_PeisFeeItem] OFF
-- 更改keyno
update [Dict_FeeItem] set keyno ='T'+ CAST(ID as varchar) ,FeeItemCode='F'+ CAST(ID as varchar)
WHERE KeyNo is null or keyno=''
-- 更新 ItemClass
UPDATE [Dict_PeisFeeItem] SET ItemClass='普通' WHERE ItemClass='1' or ItemClass is null
UPDATE [Dict_PeisFeeItem] SET ItemClass='检查' WHERE ItemClass='2'
UPDATE [Dict_PeisFeeItem] SET ItemClass='检验' WHERE ItemClass='3'
-- 2、 收费项目对应的报告项目
-- 收费项目对应的报告项目
TRUNCATE TABLE [Dict_ReportItem]
SET IDENTITY_INSERT dbo.[Dict_ReportItem] ON
INSERT INTO [dbo].[Dict_ReportItem]
([ID], [RptItemName], [SpellCode], [Unit], RptItemCode)
SELECT
ID
,NAME as RptItemName
,PYM as SpellCode
,ValueUnit as Unit
,LisCode as RptItemCode
FROM PEIS.dbo.ExamItem
SET IDENTITY_INSERT dbo.[Dict_ReportItem] OFF
-- 更新FID
UPDATE [Dict_ReportItem] SET FID= TA.FEEITEMID FROM
(
SELECT MIN(FEEITEMID) AS FEEITEMID,A.ID FROM
PEIS.dbo.ExamItem A
JOIN PEIS.dbo.FeeItemExamItem B ON A.ID=B.ExamItemID
GROUP BY A.ID) AS TA
WHERE [Dict_ReportItem].ID=TA.ID
-- 查找未存在的FID对应的报告项目插入
INSERT INTO [dbo].[Dict_ReportItem]
([FID], [RptItemName], [SpellCode], [Unit], RptItemCode)
SELECT
A.FeeItemId AS FID
,NAME as RptItemName
,PYM as SpellCode
,ValueUnit as Unit
,LisCode as RptItemCode
FROM
PEIS.dbo.FeeItemExamItem A
JOIN PEIS.dbo.ExamItem B ON A.ExamItemID =B.ID
WHERE NOT EXISTS (SELECT 1 FROM PEISDB.DBO.Dict_ReportItem WHERE FID=A.FEEITEMID AND RptItemName=B.NAME)
-- 3、 套餐对应收费项目关系修改
TRUNCATE TABLE Dict_Pack
SET IDENTITY_INSERT [dbo].[Dict_Pack] On
INSERT INTO Dict_Pack
(ID, Name, SpellCode, Sex, Marriage, Seq)
SELECT
Id,
NAME ,
PYM AS SpellCode,
SuitableGender AS Sex,
SuitableMarriage AS Marriage,
SortNo AS Seq
FROM
PEIS.dbo.ExamPack where StopOperDate is null
SET IDENTITY_INSERT [dbo].[Dict_Pack] Off
TRUNCATE TABLE Dict_PackToFeeItem
SET IDENTITY_INSERT [dbo].[Dict_PackToFeeItem] On
INSERT INTO [Dict_PackToFeeItem]
([ID], [PID], [FID], [Seq], [CreateTime], [CreatorCode], [Creator])
SELECT[Id], [ExamPackId] AS PID, [FeeItemId] AS FID, [SortNo] AS SEQ,CreateTime= '2024-05-24', CreatorCode='0513',Creator= '赵翠回'
FROM PEIS. [dbo].[ExamPackFeeItem]
SET IDENTITY_INSERT [dbo].[Dict_PackToFeeItem] OFF
UPDATE Exam_Result SET RID = TA.RID
FROM (
SELECT A.ID AS FID,B.RptItemName,B.ID AS RID FROM Dict_FeeItem A
LEFT JOIN Dict_ReportItem B ON B.FID = A. ID) TA
WHERE Exam_Result.FID=TA.FID AND Exam_Result.RptItemName=TA.RptItemName
--SELECT * FROM vi_FeeItem
-- 4、 收费项目重复 ,删除重复项目 ,修改全部对应表的FID
SELECT * FROM dbo.Dict_FeeItem -- where FeeItemCode<>''
SELECT top 200 * FROM peis.dbo.FeeItem -- where HISCheckCode<>''
select * from Dict_FeeItem a left join Dict_ReportItem b on a.id=b.fid where b.fid=44
--
SELECT * FROM Dict_FeeItem WHERE FeeItemCode='110500001A'
UPDATE Dict_FeeItem SET KeyNo=B.KEYNO
FROM Dict_FeeItem A
LEFT JOIN vi_HisFeeItem B ON A.FeeItemCode=B.FeeItemCode
WHERE B. DeptCode in (
'3204',
'3203',
'3202',
'3201',
'3101',
'3001',
'2601',
'2101',
'1102',
'0501',
'0307')