1 | RMIMHL ;WPB/JLTP ; FIM HL7 UTILITY ; 20-SEPT-2002
|
---|
2 | ;;1.0;FUNCTIONAL INDEPENDENCE;;Apr 15, 2003
|
---|
3 | SND(X) ; Generate HL7 Message for Austin
|
---|
4 | N ADMDT,CS,DA,DCDT,DIE,DME,DR,FS,HL,HLA,HLI,I,IDX,IFN,RC,RES,RM,T,TYPES
|
---|
5 | S IFN=+$G(X)
|
---|
6 | D INIT^HLFNC2("RMIM DRIVER",.HL) I $G(HL) Q -1
|
---|
7 | S FS=HL("FS"),CS=$E(HL("ECH")),RC=$E(HL("ECH"),2)
|
---|
8 | F I=0:1:8 S RM(I)=$G(^RMIM(783,IFN,I))
|
---|
9 | S HLA("HLS",1)=$$PID,HLA("HLS",2)=$$PV1,HLA("HLS",3)=$$NTE
|
---|
10 | S HLA("HLS",4)=$$OBR,HLA("HLS",5)=$$OBXDG,IDX=5
|
---|
11 | S TYPES="ADMISSION^DISCHARGE^INTERIM^FOLLOW-UP^GOALS" F T=1:1:5 D
|
---|
12 | .Q:RM(T+3)?."^" S IDX=IDX+1,HLA("HLS",IDX)=$$OBXS(T)
|
---|
13 | ;S (I,HLI)=0 F S I=$O(^RMIM(783,IFN,100,I)) Q:'I S X=^(I,0) D
|
---|
14 | ;.S HLI=HLI+1,IDX=IDX+1,HLA("HLS",IDX)=$$OBXN(X)
|
---|
15 | S X=$G(^RMIM(783,IFN,0)),ADMDT=$P(X,U,10),DCDT=$P(X,U,11),DFN=$P(X,U,3)
|
---|
16 | S X=DFN_U_ADMDT_U_DCDT
|
---|
17 | I DCDT]"",ADMDT]"" D DME^RMIMRP(.DME,X) D
|
---|
18 | .S I=0 F S I=$O(DME(I)) Q:'I D
|
---|
19 | ..S DME="OBX"_FS_I_FS_"TX"_FS_"DME ITEMS"_FS_FS_DME(I)
|
---|
20 | ..S $P(DME,FS,12)="F"
|
---|
21 | ..S IDX=IDX+1,HLA("HLS",IDX)=DME
|
---|
22 | D GENERATE^HLMA("RMIM DRIVER","LM",1,.RES)
|
---|
23 | S DIE="^RMIM(783,",DA=IFN,DR=".13///T" D ^DIE
|
---|
24 | Q RES
|
---|
25 | PID() ; Build and Return the PID Segment
|
---|
26 | N ADDR,CASE,CITY,DFN,DOB,MARRIED,PHONE,PID,PNM,RACE,SEX
|
---|
27 | N SSN,STATE,STREET,ZIP
|
---|
28 | S PID=""
|
---|
29 | S SSN=$P(RM(0),U,4),$P(PID,FS,2)=SSN,$P(PID,FS,19)=SSN
|
---|
30 | S DFN=$P(RM(0),U,3),$P(PID,FS,3)=DFN
|
---|
31 | S PNM=$$HLNAME^HLFNC($P(^DPT(DFN,0),U)),$P(PID,FS,5)=PNM
|
---|
32 | S DOB=$$HLDATE^HLFNC($P(RM(0),U,5)),$P(PID,FS,7)=DOB
|
---|
33 | S CASE=$P(RM(0),U,2),$P(PID,FS,4)=IFN_CS_CASE
|
---|
34 | S STREET=$P(RM(1),U,1)
|
---|
35 | S CITY=$P(RM(1),U,2)
|
---|
36 | S STATE=$P(RM(1),U,3)
|
---|
37 | S ZIP=$P(RM(1),U,4)
|
---|
38 | ;S ADDR=$$HLADDR^HLFNC(STREET,CITY_U_STATE_U_ZIP),$P(PID,FS,11)=ADDR
|
---|
39 | S ADDR=STREET_U_U_CITY_U_STATE_U_ZIP_U_"USA",$P(PID,FS,11)=ADDR
|
---|
40 | S PHONE=$$HLPHONE^HLFNC($P(RM(1),U,5)),$P(PID,FS,13)=PHONE
|
---|
41 | S SEX=$P(RM(1),U,6),$P(PID,FS,8)=SEX
|
---|
42 | S RACE=$P(RM(1),U,7),$P(PID,FS,10)=RACE
|
---|
43 | S MARRIED=$P(RM(1),U,8),$P(PID,FS,16)=MARRIED
|
---|
44 | S MIL=$P(RM(1),U,9),$P(PID,FS,27)=MIL
|
---|
45 | Q "PID"_FS_PID
|
---|
46 | OBR() ; KEY FIELDS
|
---|
47 | N ADMIT,ASSDT,CARE,DOB,ETIOL,FAC,IMPAIR,OBR,ONSET,SSN,UNIV
|
---|
48 | S OBR="",UNIV=""
|
---|
49 | S SSN=$P(RM(0),U,4),$P(UNIV,CS)=SSN
|
---|
50 | S DOB=$$HLDATE^HLFNC($P(RM(0),U,5)),$P(UNIV,CS,2)=DOB
|
---|
51 | S CARE=$P(RM(0),U,7),$P(UNIV,CS,3)=$$CCV(CARE)
|
---|
52 | S ONSET=$$HLDATE^HLFNC($P(RM(0),U,9)),$P(UNIV,CS,4)=ONSET
|
---|
53 | S IMPAIR=$P(RM(0),U,8),$P(UNIV,CS,5)=IMPAIR
|
---|
54 | S ADMIT=$$HLDATE^HLFNC($P(RM(0),U,10)),$P(UNIV,CS,6)=ADMIT
|
---|
55 | S FAC=$P(RM(0),U,6)
|
---|
56 | I $L(FAC)<4 S FAC=FAC_" "
|
---|
57 | I $L(FAC)<4 S FAC=FAC_" "
|
---|
58 | S $P(UNIV,CS,7)=FAC
|
---|
59 | S $P(OBR,FS,4)=UNIV
|
---|
60 | S ETIOL=$P(RM(2),U,10),$P(OBR,FS,13)=ETIOL
|
---|
61 | S ASSDT=$$HLDATE^HLFNC($P(RM(0),U,12)),$P(OBR,FS,7)=ASSDT
|
---|
62 | Q "OBR"_FS_OBR
|
---|
63 | PV1() ; EPISODE OF CARE DATA
|
---|
64 | N ADMCL,ADMDT,CARECL,DCDT,PV1
|
---|
65 | S PV1=""
|
---|
66 | S ADMCL=$P(RM(2),U),$P(PV1,FS,4)=ADMCL
|
---|
67 | S CARECL=$P(RM(0),U,7),$P(PV1,FS,2)=$$CCV(CARECL)
|
---|
68 | S ADMDT=$$HLDATE^HLFNC($P(RM(0),U,10)),$P(PV1,FS,44)=ADMDT
|
---|
69 | S DCDT=$$HLDATE^HLFNC($P(RM(0),U,11)),$P(PV1,FS,45)=DCDT
|
---|
70 | Q "PV1"_FS_PV1
|
---|
71 | CCV(X) ; CARE CLASS CONVERSION
|
---|
72 | Q $S(X=1:10,X=2:"04",X=3:"09",1:X)
|
---|
73 | NTE() ; TRANSFERS
|
---|
74 | N COM S COM=""
|
---|
75 | S COM=$P(RM(2),U,4,9)
|
---|
76 | F RM=1:1:6 S $P(COM,U,RM)=$$HLDATE^HLFNC($P(COM,U,RM))
|
---|
77 | S COM=$TR(COM,U,CS)
|
---|
78 | Q "NTE"_FS_"1"_FS_"L"_FS_COM
|
---|
79 | OBXDG() ; DIAGNOSIS CODES
|
---|
80 | N ASIA,ICD,OBX
|
---|
81 | S ASIA=$P(RM(2),U,11),ICD=$TR(RM(3),U,CS)
|
---|
82 | S OBX="1"_FS_"CE"_FS_"DIAGNOSIS CODES"_FS_ASIA_CS_ICD
|
---|
83 | S $P(OBX,FS,11)="F"
|
---|
84 | Q "OBX"_FS_OBX
|
---|
85 | OBXS(T) ; FIM SCORES
|
---|
86 | N OBX,SCORES,TYPE
|
---|
87 | S TYPE=$P(TYPES,U,T),OBX="",SCORES=$TR(RM(T+3),U,CS),$P(OBX,FS,5)=SCORES
|
---|
88 | S $P(OBX,FS,1)=IDX-5,$P(OBX,FS,2)="NM",$P(OBX,FS,3)=TYPE
|
---|
89 | S $P(OBX,FS,11)="F"
|
---|
90 | Q "OBX"_FS_OBX
|
---|
91 | OBXN(X) ; CASE NOTES
|
---|
92 | N OBX S $P(OBX,FS)=HLI,$P(OBX,FS,2)="FT",$P(OBX,FS,3)="CASE NOTES"
|
---|
93 | S $P(OBX,FS,11)="F",$P(OBX,FS,5)=X
|
---|
94 | Q "OBX"_FS_OBX
|
---|
95 | TASK ; NIGHTLY JOB
|
---|
96 | I '$$FIND1^DIC(4.2,"","X","Q-FIM.MED.VA.GOV","B") D Q
|
---|
97 | .N TX,XMDUN,XMDUZ,XMSUB,XMTEXT,XMY,XMZ
|
---|
98 | .S TX(1,0)="The domain Q-FIM.MED.VA.GOV does not exist in your DOMAIN "
|
---|
99 | .S TX(2,0)="file."
|
---|
100 | .S TX(3,0)="Ask your IRM to install patch XM*DBA*150."
|
---|
101 | .S TX(4,0)="You will not be able to transmit data to FSOD until this"
|
---|
102 | .S TX(5,0)="patch has been installed."
|
---|
103 | .S (XMDUN,XMDUZ)="FSOD TRANSMISSION",XMSUB="Missing Domain"
|
---|
104 | .S XMTEXT="TX(",XMY("G.RMIM FSOD")="" D ^XMD
|
---|
105 | S IFN=0 F S IFN=$O(^RMIM(783,"ATRAN",1,IFN)) Q:'IFN D
|
---|
106 | .Q:'$D(^RMIM(783,IFN,0))
|
---|
107 | .S STAT=$$SND(IFN)
|
---|
108 | Q
|
---|