[613] | 1 | DGRUGDS ;ALB/GRR - RAI/MDS DATA COLLECTION
|
---|
| 2 | ;;5.3;Registration;**303,359**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ;Display option description and allow user to terminate process
|
---|
| 5 | EN ;
|
---|
| 6 | W @IOF
|
---|
| 7 | N DGSTN,DGX,DGDIV
|
---|
| 8 | F I=0:1 S DGX=$P($T(TEXT+I),";;",2) Q:DGX="$END" W !,DGX
|
---|
| 9 | S DIR(0)="YA",DIR("B")="NO",DIR("A")="Do you wish to continue? "
|
---|
| 10 | S DIR("?")="Enter Yes to continue or No to quit"
|
---|
| 11 | D ^DIR K DIR
|
---|
| 12 | Q:'Y!$D(DIRUT)
|
---|
| 13 | ;
|
---|
| 14 | ;Ask user for division to seed
|
---|
| 15 | DIV ;
|
---|
| 16 | W !
|
---|
| 17 | N DIR,DIRUT
|
---|
| 18 | S DIR(0)="PO^40.8:EMZ"
|
---|
| 19 | S DIR("A")="Enter the Division you want to do Data Seeding for"
|
---|
| 20 | S DIR("?")="Select the division you want to load the patient data for into the COTS database."
|
---|
| 21 | D ^DIR K DIR Q:$D(DIRUT)!(+Y'>0)
|
---|
| 22 | S DGDIV=Y
|
---|
| 23 | S DGSTN=$$SITE^VASITE($$NOW^XLFDT,+DGDIV)
|
---|
| 24 | W !!,?4,"You have selected: ",$P(DGDIV,"^",2)
|
---|
| 25 | W !,?4,"Station Number : ",$S(+DGSTN>0:$P(DGSTN,"^",3),1:"Undefined Station Number"),!
|
---|
| 26 | I +DGSTN<0 D G DIV
|
---|
| 27 | .W !?4,"You cannot proceed with this division until the station number is corrected."
|
---|
| 28 | .W !?4,"You may select another division or quit.",!
|
---|
| 29 | N DIR,DUOUT,DTOUT
|
---|
| 30 | S DIR(0)="YAO",DIR("A")="Is this correct? ",DIR("B")="YES"
|
---|
| 31 | S DIR("?")="Enter Yes or No. Yes will select, No will cancel."
|
---|
| 32 | D ^DIR K DIR Q:$D(DTOUT)!($D(DUOUT))
|
---|
| 33 | G:'Y DIV
|
---|
| 34 | W !
|
---|
| 35 | N ZTDESC,ZTSAVE,ZTIO,ZTDTH,X,ZTQUEUED,ZTREQ,ZTRTN
|
---|
| 36 | S ZTDESC="RAI/MDS DATA SEED FOR DIVISION "_$P(DGDIV,"^",2)
|
---|
| 37 | S ZTRTN="EN1^DGRUGDS",ZTIO=""
|
---|
| 38 | S DGDIV=+DGDIV
|
---|
| 39 | S ZTSAVE("DGDIV")="",ZTSAVE("DGSTN")=""
|
---|
| 40 | D ^%ZTLOAD
|
---|
| 41 | I '$G(ZTSK) W !,"** The data seed process was not tasked **"
|
---|
| 42 | I $G(ZTSK) W !,"The data seed process has been tasked (#",ZTSK,")"
|
---|
| 43 | W !
|
---|
| 44 | Q
|
---|
| 45 | EN1 ;
|
---|
| 46 | N DGSENM,DGIEN,DGRSIED,DGWARD,DGWARD,DGWIEN,DGWDIV,DGSEED,DGMDT,DGRUGDS
|
---|
| 47 | S U="^",DGSENM="DGRU-RAI-A01-SERVER",DGRSIED=$O(^ORD(101,"B",DGSENM,0)) ;SET VARIABLES TO CALL HL7 INIT FUNCTION
|
---|
| 48 | D INIT^HLFNC2(DGSENM,.HL) ;Initialize A01 server, sets HL7 variables
|
---|
| 49 | I $O(HL(""))']"" D Q ;WAS UNABLE TO INTIALIZE
|
---|
| 50 | .S HLERR(1)=HL
|
---|
| 51 | .;S DGWARD="" F S DGWARD=$O(^DGPM("CN",DGWARD)) Q:DGWARD="" S DGWIEN=+$O(^DIC(42,"B",DGWARD,0)) I $$GET1^DIQ(42,DGWIEN,.035,"I")=1 D ;loop through active patients, if ward is RAI/MDS flagged, continue
|
---|
| 52 | .;S DGWDIV=$$GET1^DIQ(42,DGWIEN,.015,"I") I DGWDIV=DGDIV S DGIEN=0 F S DGIEN=$O(^DGPM("CN",DGWARD,DGIEN)) Q:DGIEN'>0 D ;If ward in the division selected, continue
|
---|
| 53 | ;..S DFN=$$GET1^DIQ(405,DGIEN,.03,"I") Q:DFN="" ;get patient ien
|
---|
| 54 | ;..S DGMDT=$$GET1^DIQ(405,DGIEN,.01,"I") Q:DGMDT=""
|
---|
| 55 | ;..S DGSEED=1 D BLDMSG^DGRUADT1(DFN,"A01",DGIEN,DGMDT,DGWIEN)
|
---|
| 56 | ;
|
---|
| 57 | S DGRUGDS=0
|
---|
| 58 | S DGWARD=""
|
---|
| 59 | ;Loop through active patients
|
---|
| 60 | F S DGWARD=$O(^DGPM("CN",DGWARD)) Q:(DGWARD="")!(DGRUGDS) D
|
---|
| 61 | .;Task asked to stop ?
|
---|
| 62 | .S X="Looping through ward "_DGWARD
|
---|
| 63 | .S DGRUGDS=$$S^%ZTLOAD(X) Q:DGRUGDS
|
---|
| 64 | .S DGWIEN=+$O(^DIC(42,"B",DGWARD,0))
|
---|
| 65 | .;Not an RAI/MDS ward
|
---|
| 66 | .Q:'$$GET1^DIQ(42,DGWIEN,.035,"I")
|
---|
| 67 | .S DGWDIV=$$GET1^DIQ(42,DGWIEN,.015,"I")
|
---|
| 68 | .;Ward not in selected division
|
---|
| 69 | .Q:DGWDIV'=DGDIV
|
---|
| 70 | .;Loop through movements
|
---|
| 71 | .S DGIEN=0
|
---|
| 72 | .F S DGIEN=$O(^DGPM("CN",DGWARD,DGIEN)) Q:(DGIEN'>0)!(DGRUGDS) D
|
---|
| 73 | ..;Get patient pointer and movement date/time
|
---|
| 74 | ..S DFN=$$GET1^DIQ(405,DGIEN,.03,"I") Q:DFN=""
|
---|
| 75 | ..S DGMDT=$$GET1^DIQ(405,DGIEN,.01,"I") Q:DGMDT=""
|
---|
| 76 | ..;Send message to RAI/MDS machine
|
---|
| 77 | ..S DGSEED=1 D BLDMSG^DGRUADT1(DFN,"A01",DGIEN,DGMDT,DGWIEN)
|
---|
| 78 | ..;Task asked to stop ?
|
---|
| 79 | ..S X="Looping through ward "_DGWARD_" -- Last DFN sent was "_DFN
|
---|
| 80 | ..S DGRUGDS=$$S^%ZTLOAD(X) Q:DGRUGDS
|
---|
| 81 | ;Update task message with completion status
|
---|
| 82 | I DGRUGDS S X=$$S^%ZTLOAD("Task stopped as requested")
|
---|
| 83 | I 'DGRUGDS S X=$$S^%ZTLOAD("Task ran to completion")
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | TEXT ;;This option will do the data seeding of patient data in the RAI/MDS COTS system.
|
---|
| 87 | ;;HL7 A01 Admit messages will be created for patients currently active in wards
|
---|
| 88 | ;;assigned to the selected division. This option should be run only once per
|
---|
| 89 | ;;division and the COTS system database should be empty of patient data prior
|
---|
| 90 | ;;to using this option.
|
---|
| 91 | ;;
|
---|
| 92 | ;;***NOTE***
|
---|
| 93 | ;;
|
---|
| 94 | ;;It is extremely important that both the Ward translation file (#46.12) and the
|
---|
| 95 | ;;Room-Bed Translation file (#46.13) be complete if they are needed for use.
|
---|
| 96 | ;;The RAI/MDS flag must be set to YES for the RAI/MDS wards in the selected
|
---|
| 97 | ;;division BEFORE this option is run.
|
---|
| 98 | ;;
|
---|
| 99 | ;;$END
|
---|
| 100 | ;;
|
---|
| 101 | ;Entry point for individual data seed
|
---|
| 102 | EN3 ;
|
---|
| 103 | W @IOF
|
---|
| 104 | N DGINPT,DGPTNM,DGFNM,DGLNM
|
---|
| 105 | F I=0:1 S DGX=$P($T(TEXT3+I),";;",2) Q:DGX="$END" W !,DGX
|
---|
| 106 | S DIR(0)="YA",DIR("B")="NO",DIR("A")="Do you wish to continue? "
|
---|
| 107 | S DIR("?")="Enter Yes to continue or No to quit"
|
---|
| 108 | D ^DIR K DIR
|
---|
| 109 | Q:'Y!$D(DIRUT)
|
---|
| 110 | ;
|
---|
| 111 | ;Select patient(s)
|
---|
| 112 | INPAT ;
|
---|
| 113 | W !
|
---|
| 114 | N DIR,DIRUT,DFN,DGIEN,DGWIEN,DGMDT
|
---|
| 115 | S DIR(0)="PAO^2:EMZ"
|
---|
| 116 | S DIR("A")="Enter the patient you want to data seed: "
|
---|
| 117 | S DIR("?")="Select the patient you want to load into the COTS database."
|
---|
| 118 | D ^DIR K DIR Q:$D(DIRUT)!(+Y'>0)
|
---|
| 119 | S DGINPT=+Y
|
---|
| 120 | S DGPTNM=$$GET1^DIQ(2,DGINPT,.01)
|
---|
| 121 | S DGFNM=$P(DGPTNM,",",2)
|
---|
| 122 | S DGLNM=$P(DGPTNM,",",1)
|
---|
| 123 | S DGPTNM=DGFNM_" "_DGLNM
|
---|
| 124 | W !!,?4,"You have selected: ",DGPTNM
|
---|
| 125 | W !
|
---|
| 126 | I +DGINPT<0 D G INPAT
|
---|
| 127 | .W !?4,"You cannot proceed with this patient"
|
---|
| 128 | .W !?4,"You may select another patient or quit.",!
|
---|
| 129 | N DIR,DUOUT,DTOUT
|
---|
| 130 | S DIR(0)="YAO",DIR("A")="Is this correct? ",DIR("B")="YES"
|
---|
| 131 | S DIR("?")="Enter Yes or No. Yes will select this patient. No will cancel the selection of this patient."
|
---|
| 132 | D ^DIR K DIR Q:$D(DTOUT)!($D(DUOUT))
|
---|
| 133 | G:'Y INPAT D EN4
|
---|
| 134 | ;Allow another selection
|
---|
| 135 | W !
|
---|
| 136 | S DIR(0)="YAO",DIR("A")="Select another patient? ",DIR("B")="NO"
|
---|
| 137 | S DIR("?")="Enter Yes or No. Yes will allow you to select another patient."
|
---|
| 138 | D ^DIR K DIR Q:$D(DTOUT)!($D(DUOUT))!('Y)
|
---|
| 139 | G:Y INPAT
|
---|
| 140 | W !
|
---|
| 141 | Q
|
---|
| 142 | ;
|
---|
| 143 | ;Set variables to call HL7 Function
|
---|
| 144 | EN4 ;
|
---|
| 145 | N DGSENM,DGIEN,DGRSIED,DGWARD,DGWARD,DGWIEN,DGWDIV,DGSEED,DGMDT,DGRUGDS
|
---|
| 146 | S U="^",DGSENM="DGRU-RAI-A01-SERVER",DGRSIED=$O(^ORD(101,"B",DGSENM,0))
|
---|
| 147 | D INIT^HLFNC2(DGSENM,.HL) ;Initialize A01 server, sets HL7 variables
|
---|
| 148 | I $O(HL(""))']"" D Q ;WAS UNABLE TO INTIALIZE
|
---|
| 149 | .S HLERR(1)=HL
|
---|
| 150 | ;
|
---|
| 151 | ;Get selected patient's last ward location. If RAI ward, send message.
|
---|
| 152 | ;If not an RAI ward, allow another inpatient selection. If current
|
---|
| 153 | ;ward location is empty, patient is inactive & allow another selection.
|
---|
| 154 | ACTIVE ;
|
---|
| 155 | S DFN=DGINPT
|
---|
| 156 | S DGRUGDS=0
|
---|
| 157 | S VAIP("D")="LAST"
|
---|
| 158 | D IN5^VADPT
|
---|
| 159 | I '$$CHKWARD^DGRUUTL(+$P(VAIP(5),"^")) W !!?4,DGPTNM_" is not in an RAI ward." D EXIT Q
|
---|
| 160 | I $$GET1^DIQ(2,DFN,.1)="" W !!?4,DGPTNM_" is not an active patient in an RAI ward." D EXIT Q
|
---|
| 161 | I $$CHKWARD^DGRUUTL(+$P(VAIP(5),"^")) S DGWIEN=+$P(VAIP(5),"^"),DGIEN=VAIP(1),DGMDT=+$P(VAIP(3),"^")
|
---|
| 162 | S DGSEED=1 D BLDMSG^DGRUADT1(DFN,"A01",DGIEN,DGMDT,DGWIEN)
|
---|
| 163 | W !!?4,"Sending message..."
|
---|
| 164 | D EXIT
|
---|
| 165 | Q
|
---|
| 166 | ;Reset variables for next selection
|
---|
| 167 | EXIT ;
|
---|
| 168 | K DFN,DGIEN,DGINPT,DGWIEN,DGMDT,VAIP
|
---|
| 169 | ;
|
---|
| 170 | TEXT3 ;;This option will do the data seeding of patient data in the RAI/MDS COTS system.
|
---|
| 171 | ;;HL7 A01 Admit messages will be created for selected patients currently active in
|
---|
| 172 | ;;RAI designated wards.
|
---|
| 173 | ;;
|
---|
| 174 | ;;***NOTE***
|
---|
| 175 | ;;
|
---|
| 176 | ;;It is extremely important that both the Ward translation file (#46.12)and the
|
---|
| 177 | ;;Room-Bed Translation file (#46.13) be complete if they are needed for use.
|
---|
| 178 | ;;The RAI/MDS flag must be set to YES for the RAI/MDS wards in the selected
|
---|
| 179 | ;;division BEFORE this option is run.
|
---|
| 180 | ;;
|
---|
| 181 | ;;$END
|
---|
| 182 | ;;
|
---|