[623] | 1 | DGRUUTL ;ALB/GRR - RAI/MDS UTILITY ROUTINE
|
---|
| 2 | ;;5.3;Registration;**190,444**;Aug 13, 1993
|
---|
| 3 | HLNAME(DGNAME) ;Piece apart name into LAST NAME_"^"_FIRST NAME_"^"_MIDDLE NAME_"^"_SUFFIX
|
---|
| 4 | ;Input DGNAME - Either Last Name, First or First, Middle and Last Name (i.e. SMITH,JOHN R or JOHN R SMITH)
|
---|
| 5 | S (DGFN,DGMN,DGLN,DGSUF,P1,P2,P3,P4)=""
|
---|
| 6 | I DGNAME'["," S P=$L(DGNAME," ") F Z=1:1:P S @("P"_Z)=$P(DGNAME," ",Z)
|
---|
| 7 | I DGNAME["," D
|
---|
| 8 | .S P1=$P(DGNAME,","),P2=$P(DGNAME,",",2),DGN=P2_" "_P1
|
---|
| 9 | .S P=$L(DGN," ") F Z=1:1:P S @("P"_Z)=$P(DGN," ",Z)
|
---|
| 10 | S DGSUF=$$SUF(@("P"_P))
|
---|
| 11 | I DGSUF'="" S P=P-1
|
---|
| 12 | I P=4 S DGFN=P1,DGMN=P2,DGLN=P3_" "_P4 G NAMQ
|
---|
| 13 | I P=3 D G NAMQ
|
---|
| 14 | .I $L($P(P2,"."))=1 S DGFN=P1,DGMN=P2,DGLN=P3 Q
|
---|
| 15 | .I $L($P(P2,"."))=2 S DGFN=P1,DGLN=P2_" "_P3 Q
|
---|
| 16 | .S DGFN=P1,DGMN=P2,DGLN=P3
|
---|
| 17 | S DGFN=P1,DGLN=P2
|
---|
| 18 | NAMQ Q DGLN_"^"_DGFN_"^"_DGMN_"^"_DGSUF
|
---|
| 19 | ;
|
---|
| 20 | SUF(X) ;COMPARES PASSED DATA TO LIST OF SUFFIX'S AND RETURNS A FOUND SUFFIX OR NULL
|
---|
| 21 | I "^JR.^SR.^II.^III.^IV.^V.^VI.^VII.^VIII.^VIIII.^IX.^X."'[X Q ""
|
---|
| 22 | Q X
|
---|
| 23 | ;
|
---|
| 24 | CHKWARD(X) ;RETURNS 1 IF RAI/MDS WARD AND 0 IF NOT
|
---|
| 25 | ;;Input X - Internal Entry Number of Ward in Ward file (#42)
|
---|
| 26 | ;
|
---|
| 27 | Q $S(+X>0:+($$GET1^DIQ(42,X,.035,"I")),1:0)
|
---|
| 28 | ;
|
---|
| 29 | MEDICARE(DFN) ;Will retrieve the patient's Medicare Number and return it or return null
|
---|
| 30 | ;Input - DFN patient's IEN
|
---|
| 31 | N DGSUB ;modified p-444
|
---|
| 32 | Q:DFN']"" "" ;p-444
|
---|
| 33 | S DGSUB=$$HICN^IBCNSU1(DFN) ;p-444
|
---|
| 34 | Q:DGSUB<0 "" ;no medicare number p-444
|
---|
| 35 | Q DGSUB
|
---|
| 36 | ;
|
---|
| 37 | MEDICAID(DFN) ;Will retrieve the patient's Medicaid Number and return it or a null
|
---|
| 38 | ;Input - DFN patient's IEN
|
---|
| 39 | ;
|
---|
| 40 | ; Returns the medicaid information from the patient file
|
---|
| 41 | Q $$GET1^DIQ(2,DFN,.383)
|
---|
| 42 | ;
|
---|
| 43 | GETAMOV(DFN) ;GET LAST ADMISSION MOVEMENT FOR A PATIENT
|
---|
| 44 | ;
|
---|
| 45 | N I,J S (I,J)=""
|
---|
| 46 | S I=$O(^DGPM("ATID1",DFN,I)) Q:I="" ""
|
---|
| 47 | S J=$O(^DGPM("ATID1",DFN,I,J)) ;ien of admission movement
|
---|
| 48 | Q J
|
---|
| 49 | ;
|
---|
| 50 | RELATE(X) ;CONVERT FREE TEXT RELATIONSHIP TO RELATIONSHIP FILE ENTRY NUMBER AND NAME
|
---|
| 51 | N DIC,Y
|
---|
| 52 | S X=$$UPPER^HLFNC(X)
|
---|
| 53 | S X=$S(X="WIFE":"SPOUSE",X="HUSBAND":"SPOUSE",1:X)
|
---|
| 54 | S DIC="^DG(408.11,",DIC(0)="X" D ^DIC
|
---|
| 55 | S:Y<0 Y="99^OTHER" ;DEFAULT IF NOT FOUND IN FILE
|
---|
| 56 | Q Y
|
---|
| 57 | ;
|
---|
| 58 | ENC(DGRSEG,DGRMNMT,DGRFLN,DGRFLNM,DGROLDN,DGRNDATA,DGRSIED,DGCIEN) ;CREATE AND SEND MASTER FILE UPDATE HL7 MESSAGE
|
---|
| 59 | ;INPUT:
|
---|
| 60 | ; DGRSEG - File Number
|
---|
| 61 | ; DGRMNMT - Message Type (ie INSURANCE)
|
---|
| 62 | ; DGRFLN - Vista File Number (ie 36)
|
---|
| 63 | ; DGRFLNM - Vista File Name (ie INSURANCE COMPANY)
|
---|
| 64 | ; DGROLDN - Old Name value
|
---|
| 65 | ; DGRNDATA - New value (ie BLUE CROSS NH/VT)
|
---|
| 66 | ; DGRSIED - Server Protocol IEN
|
---|
| 67 | ; DGRUHLP - Priority of Message (ie I = Immediate)
|
---|
| 68 | ;
|
---|
| 69 | Q:DGRSEG=""!(DGRMNMT="")!(DGRFLN="")!(DGRFLNM="")!(DGRNDATA="")!(DGRSIED="") ;Quit if all parameters not passed
|
---|
| 70 | D EN^DGRUGMFU(DGRSEG,DGRMNMT,DGRFLN,DGRFLNM,DGROLDN,DGRNDATA,DGCIEN) ;Call routine which formats the Master File Update
|
---|
| 71 | I $D(^TMP($J,"DGRUGMFU",1)) D ;If a Master File Update was created, do the following
|
---|
| 72 | .M HLA("HLS")=^TMP($J,"DGRUGMFU") ;Move global array maintaining HL7 message to local array
|
---|
| 73 | .D GENERATE^HLMA("DGRU-RAI-MFU-SERVER","LM",1,.DGRUET,"") ;Call API to generate the HL7 message
|
---|
| 74 | Q
|
---|
| 75 | SENDMFU() ;Function to determine if master file updates should be sent
|
---|
| 76 | Q $P($G(^DG(43,1,"HL7")),"^",4)=1
|
---|
| 77 | ;
|
---|
| 78 | DOCID(X) ;Insure provider ID not greater than 6 digits
|
---|
| 79 | Q:$E(X,1,3)'="PV1" -1
|
---|
| 80 | N DGDOC,DGNIEN,IEN
|
---|
| 81 | S DGDOC=$P(X,HL("FS"),8),IEN=$P(DGDOC,$E(HL("ECH")))
|
---|
| 82 | I $L(IEN)<7 G EXITDOC
|
---|
| 83 | S DGNIEN=$E(IEN,$L(IEN)-5,$L(IEN)),$P(DGDOC,$E(HL("ECH")))=DGNIEN
|
---|
| 84 | S $P(X,HL("FS"),8)=DGDOC
|
---|
| 85 | EXITDOC Q X
|
---|
| 86 | ;
|
---|