MCOREX ;WISC/TJK-OERR/MEDICINE DATA EXTRACT UTILITY ;2/17/98  14:48
 ;;2.3;Medicine;**17**;09/13/1996
SET S MCK=MCK+1,^TMP("MC",$J,MCC,MCK)=MCM_U_MCHEAD Q
POINT Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 S MCM=$P($G(^MCAR(MCFILE,MCARGDA,MCNODE)),U,MCPIECE)
 Q:'MCM  S MCM=$P($G(^MCAR(MCFILE1,MCM,0)),U) Q:MCM=""
 D SET
 Q
MPOINT Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 F I=0:0 S I=$O(^MCAR(MCFILE,MCARGDA,MCNODE,I)) Q:I'?1N.N  D
   .S J=$P(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
   .Q:'J  S MCM=$P($G(^MCAR(MCFILE1,J,0)),U)
   .Q:MCM=""  D SET
 Q
FREE Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 S MCM=$P(^MCAR(MCFILE,MCARGDA,MCNODE),U,MCPIECE) D SET Q
MFREE Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 F I=0:0 S I=$O(^MCAR(MCFILE,MCARGDA,MCNODE,I)) Q:I'?1N.N  D
    .S MCM=$P(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
    .Q:MCM=""  D SET
 Q
SETS Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 S J=$P(^MCAR(MCFILE,MCARGDA,MCNODE),U,MCPIECE) Q:J=""
 ;S MCM=$P($G(^DD(MCFILE,MCFILE1,0)),U,3) Q:MCM=""
 S MCM=$$GET1^DID(MCFILE,MCFILE1,"","SPECIFIER") Q:MCM=""
 F K=1:1 S L=$P(MCM,";",K) Q:L=""  I $P(L,":",1)=J S MCM=$P(L,":",2) D SET Q
 Q
MSET Q:'$D(^MCAR(MCFILE,MCARGDA,MCNODE))
 F I=0:0 S I=$O(^MCAR(MCFILE,MCARGDA,MCNODE,I)) Q:I'?1N.N  D
    .S J=$P(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
    .;Q:J=""  S MCM=$P($G(^DD(MCFILE1,.01,0)),U,3)
    .Q:J=""  S MCM=$$GET1^DID(MCFILE1,.01,"","SPECIFIER")
    .F K=1:1 S L=$P(MCM,";",K) Q:L=""  I $P(K,":",1)=J S MCM=$P(K,":",2) D SET Q
 Q
 ;
WP ;    word-processing field
 S $P(MCHEAD,";",2)="W" ;    indicate to OE/RR that this is WP
 S MCMUP=^DD(MCM,0,"UP")
 S MCMFLD=$O(^DD(MCMUP,"SB",MCM,""))
 ;S MCNODE=+$P(^DD(MCMUP,MCMFLD,0),"^",4)
 S MCNODE=$P($$GET1^DID(MCMUP,MCMFLD,"","GLOBAL SUBSCRIPT LOCATION"),";")
 F I=0:0 S I=$O(^MCAR(MCMUP,MCARGDA,MCNODE,I)) Q:I'?1N.N  D
    .S MCM=^MCAR(MCFILE,MCARGDA,MCNODE,I,0)
    .I MCM'="" D SET
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMCOREX   1910     printed  Sep 23, 2025@19:52:07                                                                                                                                                                                                      Page 2
MCOREX    ;WISC/TJK-OERR/MEDICINE DATA EXTRACT UTILITY ;2/17/98  14:48
 +1       ;;2.3;Medicine;**17**;09/13/1996
SET        SET MCK=MCK+1
           SET ^TMP("MC",$JOB,MCC,MCK)=MCM_U_MCHEAD
           QUIT 
POINT      if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        SET MCM=$PIECE($GET(^MCAR(MCFILE,MCARGDA,MCNODE)),U,MCPIECE)
 +2        if 'MCM
               QUIT 
           SET MCM=$PIECE($GET(^MCAR(MCFILE1,MCM,0)),U)
           if MCM=""
               QUIT 
 +3        DO SET
 +4        QUIT 
MPOINT     if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        FOR I=0:0
               SET I=$ORDER(^MCAR(MCFILE,MCARGDA,MCNODE,I))
               if I'?1N.N
                   QUIT 
               Begin DoDot:1
 +2                SET J=$PIECE(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
 +3                if 'J
                       QUIT 
                   SET MCM=$PIECE($GET(^MCAR(MCFILE1,J,0)),U)
 +4                if MCM=""
                       QUIT 
                   DO SET
               End DoDot:1
 +5        QUIT 
FREE       if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        SET MCM=$PIECE(^MCAR(MCFILE,MCARGDA,MCNODE),U,MCPIECE)
           DO SET
           QUIT 
MFREE      if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        FOR I=0:0
               SET I=$ORDER(^MCAR(MCFILE,MCARGDA,MCNODE,I))
               if I'?1N.N
                   QUIT 
               Begin DoDot:1
 +2                SET MCM=$PIECE(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
 +3                if MCM=""
                       QUIT 
                   DO SET
               End DoDot:1
 +4        QUIT 
SETS       if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        SET J=$PIECE(^MCAR(MCFILE,MCARGDA,MCNODE),U,MCPIECE)
           if J=""
               QUIT 
 +2       ;S MCM=$P($G(^DD(MCFILE,MCFILE1,0)),U,3) Q:MCM=""
 +3        SET MCM=$$GET1^DID(MCFILE,MCFILE1,"","SPECIFIER")
           if MCM=""
               QUIT 
 +4        FOR K=1:1
               SET L=$PIECE(MCM,";",K)
               if L=""
                   QUIT 
               IF $PIECE(L,":",1)=J
                   SET MCM=$PIECE(L,":",2)
                   DO SET
                   QUIT 
 +5        QUIT 
MSET       if '$DATA(^MCAR(MCFILE,MCARGDA,MCNODE))
               QUIT 
 +1        FOR I=0:0
               SET I=$ORDER(^MCAR(MCFILE,MCARGDA,MCNODE,I))
               if I'?1N.N
                   QUIT 
               Begin DoDot:1
 +2                SET J=$PIECE(^MCAR(MCFILE,MCARGDA,MCNODE,I,0),U,MCPIECE)
 +3       ;Q:J=""  S MCM=$P($G(^DD(MCFILE1,.01,0)),U,3)
 +4                if J=""
                       QUIT 
                   SET MCM=$$GET1^DID(MCFILE1,.01,"","SPECIFIER")
 +5                FOR K=1:1
                       SET L=$PIECE(MCM,";",K)
                       if L=""
                           QUIT 
                       IF $PIECE(K,":",1)=J
                           SET MCM=$PIECE(K,":",2)
                           DO SET
                           QUIT 
               End DoDot:1
 +6        QUIT 
 +7       ;
WP        ;    word-processing field
 +1       ;    indicate to OE/RR that this is WP
           SET $PIECE(MCHEAD,";",2)="W"
 +2        SET MCMUP=^DD(MCM,0,"UP")
 +3        SET MCMFLD=$ORDER(^DD(MCMUP,"SB",MCM,""))
 +4       ;S MCNODE=+$P(^DD(MCMUP,MCMFLD,0),"^",4)
 +5        SET MCNODE=$PIECE($$GET1^DID(MCMUP,MCMFLD,"","GLOBAL SUBSCRIPT LOCATION"),";")
 +6        FOR I=0:0
               SET I=$ORDER(^MCAR(MCMUP,MCARGDA,MCNODE,I))
               if I'?1N.N
                   QUIT 
               Begin DoDot:1
 +7                SET MCM=^MCAR(MCFILE,MCARGDA,MCNODE,I,0)
 +8                IF MCM'=""
                       DO SET
               End DoDot:1
 +9        QUIT