| 1 | TIUPNCV2 ;SLC/DJP-SF/JLI ;11/24/97  13:17
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**9**;Jun 20, 1997
 | 
|---|
| 3 | WHATSIT ;Determines component type
 | 
|---|
| 4 |  S A=GMRPFLD
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;Admission/Assessment Sections
 | 
|---|
| 7 |  I A>39&(A<46) S LNHDR="ADMISSION ASSESSMENT",TX=$S(A=40:"EMOTIONAL STATE",A=41:"BEHAVIORAL ASSESSMENT",A=42:"SOCIAL STATUS",A=43:"REHABILITATION POTENTIAL",A=44:"EMPLOYMENT POTENTIAL",A=45:"DEGREE OF DANGER",1:"") D:TX'="" COUNTS Q
 | 
|---|
| 8 |  I A>45&(A<49) S LNHDR="ADMISSION ASSESSMENT",TX=$S(A=46:"ABNORMAL PHYSICAL FINDINGS",A=47:"INITIAL IMPRESSION/PROVISIONAL DX",A=48:"STATEMENT OF TREATMENT PLANNED",1:"") D:TX'="" COUNTS Q
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;Final Discharge Note Segments
 | 
|---|
| 11 |  I A>29&(A<35) S LNHDR="FINAL DISCHARGE NOTE",TX=$S(A=30:"DXLS",A=31:"DISCHARGE BED SECTION",A=32:"OTHER DIAGNOSES",A=33:"OPERATIONS/PROCEDURES",A=34:"INSTRUCTIONS GIVEN TO PATIENT",1:"") D:TX'="" COUNTS Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;SOAP Note Segments
 | 
|---|
| 14 |  I A>19&(A<24) S LNHDR="SOAP - GENERAL NOTE",TX=$S(A=20:"SUBJECTIVE",A=21:"OBJECTIVE",A=22:"ASSESSMENT",A=23:"PLAN",1:"") D:TX'="" COUNTS Q
 | 
|---|
| 15 |  I A=10 S LNHDR="" K TX D COUNTS
 | 
|---|
| 16 |  I A=8 S LNHDR="",TX="COMMENTS" D COUNTS
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | COUNTS ;Pieces out line counts for word-processing fields
 | 
|---|
| 20 |  I $D(TX) S SUBTIL=TX
 | 
|---|
| 21 |  I (A=30)!(A=31)!(A=32) D SPECIAL Q
 | 
|---|
| 22 |  S CNTA=$P(^GMR(121,GMRPIFN,GMRPFLD,0),U,3)
 | 
|---|
| 23 |  S CNTB=$P(^GMR(121,GMRPIFN,GMRPFLD,0),U,4)
 | 
|---|
| 24 |  S TEXTDT=$P(^GMR(121,GMRPIFN,GMRPFLD,0),U,5)
 | 
|---|
| 25 |  D ONEDOC
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | ONEDOC ;Pulls formatted notes together into a single word processing field
 | 
|---|
| 29 |  S RENUM=1
 | 
|---|
| 30 |  S CNT1=(CNT1+CNTA),CNT2=(CNT2+CNTB),FLD=GMRPFLD I GMRPFLD=8 S FLD=99
 | 
|---|
| 31 |  S ^TMP("TIUMERGE",GMRPIFN,0)="^"_"^"_CNT1_"^"_CNT2_"^"_TEXTDT
 | 
|---|
| 32 |  M ^TMP("TIUMERGE",GMRPIFN,FLD)=^GMR(121,GMRPIFN,GMRPFLD)
 | 
|---|
| 33 |  I $D(SUBTIL)&(GMRPFLD'=8)
 | 
|---|
| 34 |  I  S ^TMP("TIUMERGE",GMRPIFN,GMRPFLD,"TITLE")=SUBTIL
 | 
|---|
| 35 |  K SUBTIL
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | COMMENT ;Appends word-processing contained in Field 8 - COMMENT
 | 
|---|
| 39 |  S X="COMMENT",GMRPFLD=8,RENUM=1,A=GMRPFLD
 | 
|---|
| 40 |  D COUNTS
 | 
|---|
| 41 |  S ^TMP("TIUMERGE",GMRPIFN,8,"TITLE")="COMMENT"
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | RENUM ;Renumbers WP fields and inserts TITLE of component within field.
 | 
|---|
| 45 |  S PNFLD=0,T1=0,T2=0
 | 
|---|
| 46 |  F PNFLD=0:0 S PNFLD=$O(^TMP("TIUMERGE",GMRPIFN,PNFLD)) Q:PNFLD'>0  D
 | 
|---|
| 47 |  . I $D(^TMP("TIUMERGE",GMRPIFN,PNFLD,0)) K ^TMP("TIUMERGE",GMRPIFN,PNFLD,0)
 | 
|---|
| 48 |  . D SETHOLD
 | 
|---|
| 49 |  S ^TMP("TIUHOLD",GMRPIFN,10,0)="^^"_T2_"^"_T2_"^"_TEXTDT
 | 
|---|
| 50 |  K T1,T2,PNFLD
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | SETHOLD ;Sets ^TMP("TIUHOLD") which contains the resequenced note
 | 
|---|
| 54 |  I $D(^TMP("TIUMERGE",GMRPIFN,PNFLD,"TITLE")) D
 | 
|---|
| 55 |  . S PNHDR=$P(^TMP("TIUMERGE",GMRPIFN,PNFLD,"TITLE"),U,1)
 | 
|---|
| 56 |  . S T2=(T2+1)
 | 
|---|
| 57 |  . S ^TMP("TIUHOLD",GMRPIFN,10,T2,0)=PNHDR
 | 
|---|
| 58 |  . K PNHDR
 | 
|---|
| 59 |  . K ^TMP("TIUMERGE",GMRPIFN,PNFLD,"TITLE")
 | 
|---|
| 60 |  F T1=0:0 S T1=$O(^TMP("TIUMERGE",GMRPIFN,PNFLD,T1)) Q:T1'>0  S T2=(T2+1),^TMP("TIUHOLD",GMRPIFN,10,T2,0)=^TMP("TIUMERGE",GMRPIFN,PNFLD,T1,0)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | SPECIAL ;Handles fields other than Word Processing
 | 
|---|
| 64 |  ;DXLS
 | 
|---|
| 65 |  I $P($G(^GMR(121,GMRPIFN,30)),U,1) S TIUDX=$P(^(30),U,1),SPECIAL=$$DXLS^TIUPNCV3(TIUDX),GMRPFLD=30,SUBTIL="DXLS" D SETSPEC
 | 
|---|
| 66 |  ;BEDSECTION
 | 
|---|
| 67 |  I $P($G(^GMR(121,GMRPIFN,30)),U,2) S TIUBS=$P(^(30),U,2),SPECIAL=$$BEDSEC^TIUPNCV3(TIUBS),GMRPFLD=31,SUBTIL="DISCHARGE BED SECTION" D SETSPEC
 | 
|---|
| 68 |  ;OTHER DIAGNOSES
 | 
|---|
| 69 |  I $D(^GMR(121,GMRPIFN,32)) S GMRPFLD=32,SUBTIL="OTHER DIAGNOSES" D FREETXT
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | SETSPEC ;Converts non-word-processing fields into word-processing fields
 | 
|---|
| 73 |  S ^TMP("TIUMERGE",GMRPIFN,GMRPFLD,1,0)=SUBTIL_":"
 | 
|---|
| 74 |  S ^TMP("TIUMERGE",GMRPIFN,GMRPFLD,2,0)=SPECIAL
 | 
|---|
| 75 |  K SUBTIL
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | FREETXT ;Converts multiple freetext field into word-processing fields
 | 
|---|
| 79 |  S F2=0,F3=1,^TMP("TIUMERGE",GMRPIFN,GMRPFLD,1,0)=SUBTIL_":"
 | 
|---|
| 80 |  S F1=$P(^GMR(121,GMRPIFN,GMRPFLD,0),U,3) F F2=1:1:F1 D
 | 
|---|
| 81 |  . S F3=F3+1
 | 
|---|
| 82 |  . S ^TMP("TIUMERGE",GMRPIFN,GMRPFLD,F3,0)=$G(^GMR(121,GMRPIFN,GMRPFLD,F2,0))
 | 
|---|
| 83 |  K SUBTIL,F1,F2,F3
 | 
|---|
| 84 |  Q
 | 
|---|