MDSTATU ; HOIFO/NCA - Print List of Document Titles Needed ;10/21/04  13:44
 ;;1.0;CLINICAL PROCEDURES;**5**;Apr 01, 2004;Build 1
 ; Reference Integration Agreement:
 ; IA# 10035 [Supported] Access to DPT file (#2)
 ; IA# 10039 [Supported] Hospital Location lookup in DIC(42
 ; IA# 10061 [Supported VADPT calls
 ; IA# 10104 [Supported] Routine XLFSTR calls
 ;
DISP ; Display List of TIU titles need to be created for Medicine procedures
 W ! K IOP,%ZIS S %ZIS("A")="Select Device: ",%ZIS="MQ" D ^%ZIS K %ZIS,IOP Q:POP
 I $D(IO("Q")) S ZTRTN="D1^MDSTATU",ZTREQ="@",ZTSAVE("ZTREQ")="",ZTDESC="List Documents Titles Needed",(ZTDTH,ZTIO)="" D ^%ZTLOAD D ^%ZISC W !,"Request Queued" Q
 U IO D D1 D ^%ZISC K %ZIS,IOP Q
D1 ; Process Display
 N ANS,CNT,DTP,LN,LP,MDK,MDF,MDFIL,MDN,MDN1,MDR,MDTIT,MDV,MDX,PG,S1,TIT,X
 S (CNT,PG)=0,ANS="",S1=$S(IOST?1"C".E:IOSL-2,1:IOSL-7) D H1 S MDFIL=8925.1
 S LP=0 F  S LP=$O(^MDD(703.9,1,1,LP)) Q:LP<1!(ANS="^")  S MDF=$G(^(LP,0)) D
 .Q:'$P(MDF,U,3)
 .S MDTIT=$P(MDF,U,5) Q:MDTIT
 .Q:'$P(MDF,U)  S MDR="MCAR("_+$P(MDF,U)
 .S MDN=0 F  S MDN=$O(^MCAR(697.2,"C",MDR,MDN)) Q:MDN<1!(ANS="^")  I $G(^MCAR(697.2,MDN,0))'="" D
 ..S CNT=CNT+1,MDK=$G(^MCAR(697.2,MDN,0)),TIT=$S($P(MDK,U,8)'="":$P(MDK,U,8),1:$P(MDK,U)),TIT=$$UP^XLFSTR(TIT),MDN1=$G(^MCAR(697.2,MDN,1))
 ..D:$Y'<S1 HDR Q:ANS="^"
 ..I $P(MDF,U)=699 Q:$P(MDN1,U)="S"
 ..I $P(MDF,U)=694 Q:$P(MDN1,U)="S"
 ..I $P(MDF,U)=699.5 Q:$P(MDN1,U)="P"
 ..S MDV="HISTORICAL "_TIT_$S(TIT["PROCEDURE":"",1:" PROCEDURE")
 ..S:$L(MDV)>60 MDV=$E(MDV,1,60)
 ..Q:+$$FIND1^DIC(MDFIL,"","BOX",MDV,"B","","MDERR")
 ..W !,TIT,?35,MDV
 I 'CNT W !!,"No Historical TIU titles need to be created."
 W ! Q
PAUSE ; Pause For Scroll
 I IOST?1"C".E R !!,"Press RETURN to continue. ",X:DTIME S:'$T!(X["^") ANS="^" Q:ANS="^"  I "^"'[X W !,"Enter a RETURN to Continue." G PAUSE
 Q
DTP ; Printable Date/Time
 S %=DTP,DTP=$J(+$E(DTP,6,7),2)_"-"_$P("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"," ",+$E(DTP,4,5))_"-"_$E(DTP,2,3)
 S:%#1 %=+$E(%_"0",9,10)_"^"_$E(%_"000",11,12),DTP=DTP_$J($S(%>12:%-12,1:+%),3)_":"_$P(%,"^",2)_$S(%<12:"am",%<24:"pm",1:"m") K % Q
HDR ; Display Header and Scroll Pause
 D PAUSE Q:ANS="^"
H1 ; Print Header
 W:'($E(IOST,1,2)'="C-"&'PG) @IOF
 D NOW^%DTC S MDX=%
 S PG=PG+1,DTP=MDX D DTP W !,DTP,?20,"L I S T   O F   T I U   T I T L E S   N E E D E D",?73,"Page ",PG
 W ! S $P(LN,"-",80)="" W !,LN,!
 W !,"PROCEDURES",?35,"Titles Needed to be Created"
 W !,"----------",?35,"---------------------------",!
 Q
SETDEF ; Set default CP Definitions in Conversion Parameter
 N MDERR,MDDIEN,MDK,MDF,MDFC,MDFIL,MDFDA,MDLP,MDN,MDNAM,MDOPT,MDR,MDS,MDTAR,MDNAM,MDX,MDY S MDFIL=8925.1 K MDTAR
 F MDX=1:1 S MDOPT=$P($T(MEDTIT+MDX),";;",2) Q:MDOPT="**END**"  D
 .S MDS=$P(MDOPT,";",2)
 .S MDY=+$$FIND1^DIC(MDFIL,"","BOX",MDS,"B","","MDERR") Q:'MDY
 .S MDTAR(+MDOPT)=+MDY
 S MDLP=0 F  S MDLP=$O(^MDD(703.9,1,1,MDLP)) Q:MDLP<1  S MDF=$G(^(MDLP,0)) D
 .S MDFC=+$P(MDF,U)  Q:'MDFC  S MDR="MCAR("_MDFC
 .Q:MDFC=699
 .Q:MDFC=699.5
 .Q:MDFC=694
 .S (MDK,MDN)=0,MDNAM="" F  S MDN=$O(^MCAR(697.2,"C",MDR,MDN)) Q:MDN<1  I $G(^MCAR(697.2,MDN,0))'="" D
 ..S MDK=$G(^MCAR(697.2,MDN,0)),MDNAM=$S($P(MDK,U,8)'="":$P(MDK,U,8),1:$P(MDK,U)),MDNAM=$$UP^XLFSTR(MDNAM)
 .I MDNAM=""&(+$P(MDF,U)=694.5) S MDNAM="CARDIAC SURGERY RISK ASSESSMENT"
 .Q:MDNAM=""
 .S:$L(MDNAM)<30 MDNAM=MDNAM_" - HIST"
 .S:$L(MDNAM)>30 MDNAM=$E(MDNAM,1,30)
 .I '$O(^MDS(702.01,"B",MDNAM,0)) D
 ..Q:$P(MDF,U,2)'=""
 ..K MDERR,MDDIEN
 ..S MDFDA(702.01,"+1,",.01)=MDNAM
 ..D UPDATE^DIE("","MDFDA","MDDIEN","MDERR") Q:$D(MDERR)
 ..S:+MDDIEN(1) $P(^MDD(703.9,1,1,MDLP,0),U,2)=+MDDIEN(1)
 .I $P(MDF,U,5)="" S:+$G(MDTAR(MDFC)) $P(^MDD(703.9,1,1,MDLP,0),U,5)=+$G(MDTAR(MDFC))
 Q
GETMED(MDMNO,MDTYPE) ; Get the Medicine Procedure name
 N MDI,MDMF,MDLL,MDLL1,MDLL6,MDLL8,MDNA
 S MDNA=""
 Q:MDTYPE="" MDNA
 Q:'+MDMNO MDNA
 S MDI=+MDMNO,MDMF=+$P(MDMNO,"MCAR(",2) Q:'MDMF MDNA
 I MDMF=699 D
 .S (MDLL,MDLL1)=$P($G(^MCAR(699,+MDI,0)),U,12) Q:'MDLL
 .S MDLL=$G(^MCAR(697.2,MDLL,0)) Q:MDLL=""
 .S MDNA=$S($P(MDLL,U,8)'="":$P(MDLL,U,8),1:$P(MDLL,U)) Q
 I MDMF=699.5 D
 .S MDLL6=$P($G(^MCAR(699.5,+MDI,0)),U,6) Q:'MDLL6
 .S MDLL8=$P($G(^MCAR(699.5,+MDI,0)),U,8) S:MDLL8="" MDLL8=" "
 .S MDLL=$G(^MCAR(697.2,MDLL6,0)) Q:MDLL=""
 .I MDTYPE="N" S MDNA=$S($P(MDLL,U,8)'="":$P(MDLL,U,8),1:$P(MDLL,U)) Q
 .I MDTYPE="P" S MDNA=$E(($E($P(MDLL,U,8),1,13)_"/"_$P($G(^MCAR(697.2,+MDLL8,0)),U)),1,30)
 I MDMF=694 D
 .S MDLL=$P($G(^MCAR(694,MDI,0)),U,3) Q:'MDLL
 .S MDLL=$G(^MCAR(697.2,MDLL,0)) Q:MDLL=""
 .S MDNA=$S($P(MDLL,U,8)'="":$P(MDLL,U,8),1:$P(MDLL,U)) Q
 S:MDNA'="" MDNA=$$UP^XLFSTR(MDNA)
 Q MDNA
LOCATP(MDNNO) ; Locate the CP Definition procedure or Add the New Entry
 N MDDIEN,MDERR,MDFDA,MDNM,Y S Y=0
 Q:'+MDNNO 0  S MDMNO=MDNNO
 S MDNM=$$GETMED(MDMNO,"P") Q:MDNM="" Y
 S MDNM=MDNM_" - HIST" S:$L(MDNM)>30 MDNM=$E(MDNM,1,30)
 S Y=$O(^MDS(702.01,"B",MDNM,0)) Q:+Y Y
 S MDFDA(702.01,"+1,",.01)=MDNM
 D UPDATE^DIE("","MDFDA","MDDIEN","MDERR") Q:$D(MDERR)
 S Y=+MDDIEN(1)
 Q Y
LOCATN(MDNNO) ; Locate the Historical Document Title
 N MDDIEN,MDERR,MDFDA,MDNM,MDT,MDV,Y S Y=0,MDV=8925.1
 Q:'+MDNNO 0  S MDMNO=MDNNO
 S MDNM=$$GETMED(MDMNO,"N") Q:MDNM="" Y
 S MDT="HISTORICAL "_MDNM_$S(MDNM["PROCEDURE":"",1:" PROCEDURE")
 S Y=+$$FIND1^DIC(MDV,"","BOX",MDT,"B","","MDERR")
 Q Y
HOSP(MDNNO) ; Locate the Hospital Location
 N MDERR,MDI,MDMF,MDOPT,MDL,MDS,MDTAR,MDV,MDW,MDW1,MDX
 S MDL=0 K MDTAR
 Q:'+MDNNO MDL
 S MDI=+MDNNO,MDMF=+$P(MDNNO,"MCAR(",2) Q:'MDMF MDL
 F MDX=1:1 S MDOPT=$P($T(MEDTIT+MDX),";;",2) Q:MDOPT="**END**"  D
 .S MDS=$P(MDOPT,";",3,4)
 .S MDTAR(+MDOPT)=MDS
 S MDS=$G(MDTAR(MDMF))
 S:+$P(MDS,";",2) MDL=$P($G(^MCAR(MDMF,MDI,$P(MDS,";"))),"^",+$P(MDS,";",2))
 I 'MDL D
 .S DFN=+$P($G(^MCAR(MDMF,MDI,0)),U,2),VAIP("D")=$P($G(^MCAR(MDMF,MDI,0)),U,1)
 .D IN5^VADPT S MDW=+VAIP(5) D KVAR^VADPT S:MDW MDL=+$P($G(^DIC(42,+MDW,44)),U)
 .I 'MDL S MDW=$G(^DPT(DFN,.1)) I MDW'="" S MDV=42,MDW1=$$FIND1^DIC(MDV,"","BOX",MDW,"B","","MDERR") S:MDW1 MDL=+$P($G(^DIC(42,+MDW1,44)),U)
 Q MDL
MEDTIT ;; [Medicine Historical Document Titles]
 ;;691.1;HISTORICAL CARDIAC CATHETERIZATION PROCEDURE;0;6
 ;;691;HISTORICAL ECHOCARDIOGRAM PROCEDURE;11;2
 ;;691.5;HISTORICAL ELECTROCARDIOGRAM PROCEDURE;8;1
 ;;691.8;HISTORICAL ELECTROPHYSIOLOGY PROCEDURE;15;3
 ;;691.7;HISTORICAL EXERCISE TOLERANCE TEST PROCEDURE;10;5
 ;;691.6;HISTORICAL HOLTER PROCEDURE;0;18
 ;;698;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 ;;698.1;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 ;;698.2;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 ;;698.3;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 ;;694.5;HISTORICAL PRE/POST SURGERY RISK NOTE
 ;;694; ;0;4
 ;;699; ;0;11
 ;;700;HISTORICAL PULMONARY FUNCTION TEST PROCEDURE;0;10
 ;;701;HISTORICAL RHEUMATOLOGY PROCEDURE
 ;;**END**
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMDSTATU   6876     printed  Sep 23, 2025@19:20:20                                                                                                                                                                                                     Page 2
MDSTATU   ; HOIFO/NCA - Print List of Document Titles Needed ;10/21/04  13:44
 +1       ;;1.0;CLINICAL PROCEDURES;**5**;Apr 01, 2004;Build 1
 +2       ; Reference Integration Agreement:
 +3       ; IA# 10035 [Supported] Access to DPT file (#2)
 +4       ; IA# 10039 [Supported] Hospital Location lookup in DIC(42
 +5       ; IA# 10061 [Supported VADPT calls
 +6       ; IA# 10104 [Supported] Routine XLFSTR calls
 +7       ;
DISP      ; Display List of TIU titles need to be created for Medicine procedures
 +1        WRITE !
           KILL IOP,%ZIS
           SET %ZIS("A")="Select Device: "
           SET %ZIS="MQ"
           DO ^%ZIS
           KILL %ZIS,IOP
           if POP
               QUIT 
 +2        IF $DATA(IO("Q"))
               SET ZTRTN="D1^MDSTATU"
               SET ZTREQ="@"
               SET ZTSAVE("ZTREQ")=""
               SET ZTDESC="List Documents Titles Needed"
               SET (ZTDTH,ZTIO)=""
               DO ^%ZTLOAD
               DO ^%ZISC
               WRITE !,"Request Queued"
               QUIT 
 +3        USE IO
           DO D1
           DO ^%ZISC
           KILL %ZIS,IOP
           QUIT 
D1        ; Process Display
 +1        NEW ANS,CNT,DTP,LN,LP,MDK,MDF,MDFIL,MDN,MDN1,MDR,MDTIT,MDV,MDX,PG,S1,TIT,X
 +2        SET (CNT,PG)=0
           SET ANS=""
           SET S1=$SELECT(IOST?1"C".E:IOSL-2,1:IOSL-7)
           DO H1
           SET MDFIL=8925.1
 +3        SET LP=0
           FOR 
               SET LP=$ORDER(^MDD(703.9,1,1,LP))
               if LP<1!(ANS="^")
                   QUIT 
               SET MDF=$GET(^(LP,0))
               Begin DoDot:1
 +4                if '$PIECE(MDF,U,3)
                       QUIT 
 +5                SET MDTIT=$PIECE(MDF,U,5)
                   if MDTIT
                       QUIT 
 +6                if '$PIECE(MDF,U)
                       QUIT 
                   SET MDR="MCAR("_+$PIECE(MDF,U)
 +7                SET MDN=0
                   FOR 
                       SET MDN=$ORDER(^MCAR(697.2,"C",MDR,MDN))
                       if MDN<1!(ANS="^")
                           QUIT 
                       IF $GET(^MCAR(697.2,MDN,0))'=""
                           Begin DoDot:2
 +8                            SET CNT=CNT+1
                               SET MDK=$GET(^MCAR(697.2,MDN,0))
                               SET TIT=$SELECT($PIECE(MDK,U,8)'="":$PIECE(MDK,U,8),1:$PIECE(MDK,U))
                               SET TIT=$$UP^XLFSTR(TIT)
                               SET MDN1=$GET(^MCAR(697.2,MDN,1))
 +9                            if $Y'<S1
                                   DO HDR
                               if ANS="^"
                                   QUIT 
 +10                           IF $PIECE(MDF,U)=699
                                   if $PIECE(MDN1,U)="S"
                                       QUIT 
 +11                           IF $PIECE(MDF,U)=694
                                   if $PIECE(MDN1,U)="S"
                                       QUIT 
 +12                           IF $PIECE(MDF,U)=699.5
                                   if $PIECE(MDN1,U)="P"
                                       QUIT 
 +13                           SET MDV="HISTORICAL "_TIT_$SELECT(TIT["PROCEDURE":"",1:" PROCEDURE")
 +14                           if $LENGTH(MDV)>60
                                   SET MDV=$EXTRACT(MDV,1,60)
 +15                           if +$$FIND1^DIC(MDFIL,"","BOX",MDV,"B","","MDERR")
                                   QUIT 
 +16                           WRITE !,TIT,?35,MDV
                           End DoDot:2
               End DoDot:1
 +17       IF 'CNT
               WRITE !!,"No Historical TIU titles need to be created."
 +18       WRITE !
           QUIT 
PAUSE     ; Pause For Scroll
 +1        IF IOST?1"C".E
               READ !!,"Press RETURN to continue. ",X:DTIME
               if '$TEST!(X["^")
                   SET ANS="^"
               if ANS="^"
                   QUIT 
               IF "^"'[X
                   WRITE !,"Enter a RETURN to Continue."
                   GOTO PAUSE
 +2        QUIT 
DTP       ; Printable Date/Time
 +1        SET %=DTP
           SET DTP=$JUSTIFY(+$EXTRACT(DTP,6,7),2)_"-"_$PIECE("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"," ",+$EXTRACT(DTP,4,5))_"-"_$EXTRACT(DTP,2,3)
 +2        if %#1
               SET %=+$EXTRACT(%_"0",9,10)_"^"_$EXTRACT(%_"000",11,12)
               SET DTP=DTP_$JUSTIFY($SELECT(%>12:%-12,1:+%),3)_":"_$PIECE(%,"^",2)_$SELECT(%<12:"am",%<24:"pm",1:"m")
           KILL %
           QUIT 
HDR       ; Display Header and Scroll Pause
 +1        DO PAUSE
           if ANS="^"
               QUIT 
H1        ; Print Header
 +1        if '($EXTRACT(IOST,1,2)'="C-"&'PG)
               WRITE @IOF
 +2        DO NOW^%DTC
           SET MDX=%
 +3        SET PG=PG+1
           SET DTP=MDX
           DO DTP
           WRITE !,DTP,?20,"L I S T   O F   T I U   T I T L E S   N E E D E D",?73,"Page ",PG
 +4        WRITE !
           SET $PIECE(LN,"-",80)=""
           WRITE !,LN,!
 +5        WRITE !,"PROCEDURES",?35,"Titles Needed to be Created"
 +6        WRITE !,"----------",?35,"---------------------------",!
 +7        QUIT 
SETDEF    ; Set default CP Definitions in Conversion Parameter
 +1        NEW MDERR,MDDIEN,MDK,MDF,MDFC,MDFIL,MDFDA,MDLP,MDN,MDNAM,MDOPT,MDR,MDS,MDTAR,MDNAM,MDX,MDY
           SET MDFIL=8925.1
           KILL MDTAR
 +2        FOR MDX=1:1
               SET MDOPT=$PIECE($TEXT(MEDTIT+MDX),";;",2)
               if MDOPT="**END**"
                   QUIT 
               Begin DoDot:1
 +3                SET MDS=$PIECE(MDOPT,";",2)
 +4                SET MDY=+$$FIND1^DIC(MDFIL,"","BOX",MDS,"B","","MDERR")
                   if 'MDY
                       QUIT 
 +5                SET MDTAR(+MDOPT)=+MDY
               End DoDot:1
 +6        SET MDLP=0
           FOR 
               SET MDLP=$ORDER(^MDD(703.9,1,1,MDLP))
               if MDLP<1
                   QUIT 
               SET MDF=$GET(^(MDLP,0))
               Begin DoDot:1
 +7                SET MDFC=+$PIECE(MDF,U)
                   if 'MDFC
                       QUIT 
                   SET MDR="MCAR("_MDFC
 +8                if MDFC=699
                       QUIT 
 +9                if MDFC=699.5
                       QUIT 
 +10               if MDFC=694
                       QUIT 
 +11               SET (MDK,MDN)=0
                   SET MDNAM=""
                   FOR 
                       SET MDN=$ORDER(^MCAR(697.2,"C",MDR,MDN))
                       if MDN<1
                           QUIT 
                       IF $GET(^MCAR(697.2,MDN,0))'=""
                           Begin DoDot:2
 +12                           SET MDK=$GET(^MCAR(697.2,MDN,0))
                               SET MDNAM=$SELECT($PIECE(MDK,U,8)'="":$PIECE(MDK,U,8),1:$PIECE(MDK,U))
                               SET MDNAM=$$UP^XLFSTR(MDNAM)
                           End DoDot:2
 +13               IF MDNAM=""&(+$PIECE(MDF,U)=694.5)
                       SET MDNAM="CARDIAC SURGERY RISK ASSESSMENT"
 +14               if MDNAM=""
                       QUIT 
 +15               if $LENGTH(MDNAM)<30
                       SET MDNAM=MDNAM_" - HIST"
 +16               if $LENGTH(MDNAM)>30
                       SET MDNAM=$EXTRACT(MDNAM,1,30)
 +17               IF '$ORDER(^MDS(702.01,"B",MDNAM,0))
                       Begin DoDot:2
 +18                       if $PIECE(MDF,U,2)'=""
                               QUIT 
 +19                       KILL MDERR,MDDIEN
 +20                       SET MDFDA(702.01,"+1,",.01)=MDNAM
 +21                       DO UPDATE^DIE("","MDFDA","MDDIEN","MDERR")
                           if $DATA(MDERR)
                               QUIT 
 +22                       if +MDDIEN(1)
                               SET $PIECE(^MDD(703.9,1,1,MDLP,0),U,2)=+MDDIEN(1)
                       End DoDot:2
 +23               IF $PIECE(MDF,U,5)=""
                       if +$GET(MDTAR(MDFC))
                           SET $PIECE(^MDD(703.9,1,1,MDLP,0),U,5)=+$GET(MDTAR(MDFC))
               End DoDot:1
 +24       QUIT 
GETMED(MDMNO,MDTYPE) ; Get the Medicine Procedure name
 +1        NEW MDI,MDMF,MDLL,MDLL1,MDLL6,MDLL8,MDNA
 +2        SET MDNA=""
 +3        if MDTYPE=""
               QUIT MDNA
 +4        if '+MDMNO
               QUIT MDNA
 +5        SET MDI=+MDMNO
           SET MDMF=+$PIECE(MDMNO,"MCAR(",2)
           if 'MDMF
               QUIT MDNA
 +6        IF MDMF=699
               Begin DoDot:1
 +7                SET (MDLL,MDLL1)=$PIECE($GET(^MCAR(699,+MDI,0)),U,12)
                   if 'MDLL
                       QUIT 
 +8                SET MDLL=$GET(^MCAR(697.2,MDLL,0))
                   if MDLL=""
                       QUIT 
 +9                SET MDNA=$SELECT($PIECE(MDLL,U,8)'="":$PIECE(MDLL,U,8),1:$PIECE(MDLL,U))
                   QUIT 
               End DoDot:1
 +10       IF MDMF=699.5
               Begin DoDot:1
 +11               SET MDLL6=$PIECE($GET(^MCAR(699.5,+MDI,0)),U,6)
                   if 'MDLL6
                       QUIT 
 +12               SET MDLL8=$PIECE($GET(^MCAR(699.5,+MDI,0)),U,8)
                   if MDLL8=""
                       SET MDLL8=" "
 +13               SET MDLL=$GET(^MCAR(697.2,MDLL6,0))
                   if MDLL=""
                       QUIT 
 +14               IF MDTYPE="N"
                       SET MDNA=$SELECT($PIECE(MDLL,U,8)'="":$PIECE(MDLL,U,8),1:$PIECE(MDLL,U))
                       QUIT 
 +15               IF MDTYPE="P"
                       SET MDNA=$EXTRACT(($EXTRACT($PIECE(MDLL,U,8),1,13)_"/"_$PIECE($GET(^MCAR(697.2,+MDLL8,0)),U)),1,30)
               End DoDot:1
 +16       IF MDMF=694
               Begin DoDot:1
 +17               SET MDLL=$PIECE($GET(^MCAR(694,MDI,0)),U,3)
                   if 'MDLL
                       QUIT 
 +18               SET MDLL=$GET(^MCAR(697.2,MDLL,0))
                   if MDLL=""
                       QUIT 
 +19               SET MDNA=$SELECT($PIECE(MDLL,U,8)'="":$PIECE(MDLL,U,8),1:$PIECE(MDLL,U))
                   QUIT 
               End DoDot:1
 +20       if MDNA'=""
               SET MDNA=$$UP^XLFSTR(MDNA)
 +21       QUIT MDNA
LOCATP(MDNNO) ; Locate the CP Definition procedure or Add the New Entry
 +1        NEW MDDIEN,MDERR,MDFDA,MDNM,Y
           SET Y=0
 +2        if '+MDNNO
               QUIT 0
           SET MDMNO=MDNNO
 +3        SET MDNM=$$GETMED(MDMNO,"P")
           if MDNM=""
               QUIT Y
 +4        SET MDNM=MDNM_" - HIST"
           if $LENGTH(MDNM)>30
               SET MDNM=$EXTRACT(MDNM,1,30)
 +5        SET Y=$ORDER(^MDS(702.01,"B",MDNM,0))
           if +Y
               QUIT Y
 +6        SET MDFDA(702.01,"+1,",.01)=MDNM
 +7        DO UPDATE^DIE("","MDFDA","MDDIEN","MDERR")
           if $DATA(MDERR)
               QUIT 
 +8        SET Y=+MDDIEN(1)
 +9        QUIT Y
LOCATN(MDNNO) ; Locate the Historical Document Title
 +1        NEW MDDIEN,MDERR,MDFDA,MDNM,MDT,MDV,Y
           SET Y=0
           SET MDV=8925.1
 +2        if '+MDNNO
               QUIT 0
           SET MDMNO=MDNNO
 +3        SET MDNM=$$GETMED(MDMNO,"N")
           if MDNM=""
               QUIT Y
 +4        SET MDT="HISTORICAL "_MDNM_$SELECT(MDNM["PROCEDURE":"",1:" PROCEDURE")
 +5        SET Y=+$$FIND1^DIC(MDV,"","BOX",MDT,"B","","MDERR")
 +6        QUIT Y
HOSP(MDNNO) ; Locate the Hospital Location
 +1        NEW MDERR,MDI,MDMF,MDOPT,MDL,MDS,MDTAR,MDV,MDW,MDW1,MDX
 +2        SET MDL=0
           KILL MDTAR
 +3        if '+MDNNO
               QUIT MDL
 +4        SET MDI=+MDNNO
           SET MDMF=+$PIECE(MDNNO,"MCAR(",2)
           if 'MDMF
               QUIT MDL
 +5        FOR MDX=1:1
               SET MDOPT=$PIECE($TEXT(MEDTIT+MDX),";;",2)
               if MDOPT="**END**"
                   QUIT 
               Begin DoDot:1
 +6                SET MDS=$PIECE(MDOPT,";",3,4)
 +7                SET MDTAR(+MDOPT)=MDS
               End DoDot:1
 +8        SET MDS=$GET(MDTAR(MDMF))
 +9        if +$PIECE(MDS,";",2)
               SET MDL=$PIECE($GET(^MCAR(MDMF,MDI,$PIECE(MDS,";"))),"^",+$PIECE(MDS,";",2))
 +10       IF 'MDL
               Begin DoDot:1
 +11               SET DFN=+$PIECE($GET(^MCAR(MDMF,MDI,0)),U,2)
                   SET VAIP("D")=$PIECE($GET(^MCAR(MDMF,MDI,0)),U,1)
 +12               DO IN5^VADPT
                   SET MDW=+VAIP(5)
                   DO KVAR^VADPT
                   if MDW
                       SET MDL=+$PIECE($GET(^DIC(42,+MDW,44)),U)
 +13               IF 'MDL
                       SET MDW=$GET(^DPT(DFN,.1))
                       IF MDW'=""
                           SET MDV=42
                           SET MDW1=$$FIND1^DIC(MDV,"","BOX",MDW,"B","","MDERR")
                           if MDW1
                               SET MDL=+$PIECE($GET(^DIC(42,+MDW1,44)),U)
               End DoDot:1
 +14       QUIT MDL
MEDTIT    ;; [Medicine Historical Document Titles]
 +1       ;;691.1;HISTORICAL CARDIAC CATHETERIZATION PROCEDURE;0;6
 +2       ;;691;HISTORICAL ECHOCARDIOGRAM PROCEDURE;11;2
 +3       ;;691.5;HISTORICAL ELECTROCARDIOGRAM PROCEDURE;8;1
 +4       ;;691.8;HISTORICAL ELECTROPHYSIOLOGY PROCEDURE;15;3
 +5       ;;691.7;HISTORICAL EXERCISE TOLERANCE TEST PROCEDURE;10;5
 +6       ;;691.6;HISTORICAL HOLTER PROCEDURE;0;18
 +7       ;;698;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 +8       ;;698.1;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 +9       ;;698.2;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 +10      ;;698.3;HISTORICAL PACEMAKER IMPLANTATION PROCEDURE
 +11      ;;694.5;HISTORICAL PRE/POST SURGERY RISK NOTE
 +12      ;;694; ;0;4
 +13      ;;699; ;0;11
 +14      ;;700;HISTORICAL PULMONARY FUNCTION TEST PROCEDURE;0;10
 +15      ;;701;HISTORICAL RHEUMATOLOGY PROCEDURE
 +16      ;;**END**