Home » Topics » Child Health » Post Natal Care check (PNC_CHECKINGIN WITHIN 2DAYS) 
	
		
		
			| Post Natal Care check [message #23781] | 
			Tue, 30 November 2021 02:34   | 
		 
		
			
				
				
				
					
						  
						Francois
						 Messages: 9 Registered: February 2017  Location: KIGALI
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Hello, 
I am trying to reproduce the Table 9.9 and Table 9.11 ,The percentage of women with a pnc chek during the first 2days after birth for both mothers and newborn using GITHUB Codes. I am getting the different numbers in frequencies and percentages, Probably variables used changed but don't know where are mistakes. Thank you for your assistance 
Here are the codes used: 
 
*=====PNC INDICATORS======== 
cd"C:\Users\ICF Rwanda\Desktop\district\DHS6" 
use RWIR81FL, clear 
 
gen age = v008 - b3_01 
gen w=v005/1000000 
 
scalar drop _all 
 
** To check if survey has m51_1, which was in the surveys before 2005.  
 
	scalar m51_included=1 
		capture confirm numeric variable m51_1, exact  
		if _rc>0 { 
		* m51_1 is not present 
		scalar m51_included=0 
		} 
		if _rc==0 { 
		* m51_1 is present; check for values 
		summarize m51_1 
		  if r(sd)==0 | r(sd)==. { 
		  scalar m51_included=0 
		  } 
		} 
		 
*** Mother's PNC ***		 
		 
if m51_included==1 { 
 
//PNC timing for mother	 
	recode m51_1 (100/103 = 1 "<4hr") (104/123 200 = 2 "4-23hrs") (124/171 201/202 = 3 "1-2 days") /// 
	(172/197 203/206 = 4 "3-6 days") (207/241 301/305=5 "7-41 days") /// 
	(198/199 298/299 398/399 998/999 = 9 "dont know/missing") (242/297 306/397 = 0 "no pnc check") , g(rh_pnc_wm_timing) 
	replace rh_pnc_wm_timing = 0 if m50_1==0 | m50_1==9 
	replace rh_pnc_wm_timing = 0 if (m52_1>29 & m52_1<97) | m52_1==. 
	replace rh_pnc_wm_timing=. if age>=24 | bidx_01!=1   
	label var rh_pnc_wm_timing "Timing after delivery for mother's PNC check" 
 
//PNC within 2days for mother	 
	recode rh_pnc_wm_timing (1/3= 1 "Visit w/in 2 days") (0 4 5 9  = 0 "No Visit w/in 2 days"), g(rh_pnc_wm_2days) 
	label var rh_pnc_wm_2days "PNC check within two days for mother" 
	 
//PNC provider for mother	 
** This is country specific and could be different for different surveys, please check footnote of the table for this indicator in the final report.  
	recode m52_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
		( else = 9 "Don't know or missing") if age<24 & rh_pnc_wm_2days==1, gen(rh_pnc_wm_pv) 
	replace rh_pnc_wm_pv = 0 if rh_pnc_wm_2days==0 & age<24 
	label var rh_pnc_wm_pv "Provider for mother's PNC check" 
} 
	 
if m51_included==0 { 
cap drop rh_pnc_wm_timing 
 
//PNC timing for mother		 
	*did the mother have any check 
	gen momcheck = 0 if age<24  
	replace momcheck = 1 if (m62_1==1 | m66_1==1) & age<24 
	 
	*create combined timing variable 
	gen pnc_wm_time = 999 if (age<24 & momcheck==1)  
	*start with women who delivered in a health facility with a check 
	replace pnc_wm_time = m63_1 if inrange(m64_1,11,29) & age<24  
	*Account for provider of PNC- country specific- see table footnotes 
	replace pnc_wm_time = 0 if (pnc_wm_time < 1000 & m64_1 >30 & m64_1 < 100 & age<24)  
	*Add in women who delivered at home with a check 
	replace pnc_wm_time = m67_1 if  (pnc_wm_time == 999 & inrange(m68_1, 11,29) & age<24)  
	*Account for provider of PNC- country specific- see table footnotes 
	replace pnc_wm_time = 0 if m67_1 < 1000 & m68_1 >30 & m68_1 < 100 & age<24  
	*Add in women who had no check  
	replace pnc_wm_time = 0 if momcheck == 0 & age<24  
	 
	*Recode variable into categories as in FR 
	recode pnc_wm_time (0 242/299 306/899 = 0 "No check or past 41 days") ( 100/103 = 1 "<4hrs") (104/123 200 = 2 "4-23hrs") (124/171 201/202 = 3 "1-2days") /// 
	(172/197 203/206 = 4 "3-6days") (207/241 301/305 = 5 "7-41days")  (else = 9 "Don't know/missing") if age<24, gen(rh_pnc_wm_timing)  
	*label variable 
	label var rh_pnc_wm_timing "Timing after delivery for mother's PNC check" 
 
//PNC within 2days for mother	 
	recode rh_pnc_wm_timing (1/3 = 1 "Within 2 days") (0 4 5 9 = 0 "Not in 2 days"), gen(rh_pnc_wm_2days)  
	label var rh_pnc_wm_2days "PNC check within two days for mother" 
	 
//PNC provider for mother	 
** This is country specific and could be different for different surveys, please check footnote of the table for this indicator in the final report.  
	 
	*Providers of PNC for facility deliveries  
	recode m64_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
	( else = 9 "Don't know or missing") if age<24 & rh_pnc_wm_2days==1, gen(pnc_wm_pv_hf) 
	replace pnc_wm_pv_hf = 0 if rh_pnc_wm_2days==0 & age<24 
	 
	*Providers of PNC for home deliveries or checks after discharge 
	recode m68_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
	( else = 9 "Don't know or missing") if age<24 & rh_pnc_wm_2days==1 , gen(pnc_wm_pv_home) 
	replace pnc_wm_pv_home = 0 if rh_pnc_wm_2days==0  & age<24 
 
	*Combine two PNC provider variables 	 
	clonevar rh_pnc_wm_pv = pnc_wm_pv_hf  
	replace rh_pnc_wm_pv = pnc_wm_pv_home if (pnc_wm_pv_hf==9 & rh_pnc_wm_2days==1 & age<24)  
	*label variable 
	label var rh_pnc_wm_pv "Provider for mother's PNC check" 
} 
 
 
 
*** Newborn's PNC *** 
 
* some surveys (usally older surveys) do not have PNC indicators for newborns. For this you would need variables m70_1, m71_1, ..., m76_1 
scalar m70s_included=1 
forvalues i=1/6 { 
		capture confirm numeric variable m7`i'_1, exact  
		if _rc>0 { 
		scalar m70s_included=0 
		} 
		if _rc==0 { 
		summarize m7`i'_1 
		  if r(sd)==0 | r(sd)==. { 
		  scalar m70s_included=0 
		  } 
		} 
} 
 
*survey has newborn PNC indicators 
if m70s_included==1 { 
	 
	if m51_included==1 { 
			 
	//PNC timing for newborn 
		recode m71_1 (207/297 301/397 = 0 "No check or past 7 days") ( 100 = 1 "less than 1 hour") (101/103 = 2 "1-3 hours") (104/123 200 = 3 "4 to 23 hours") (124/171 201/202 = 4 "1-2 days") /// 
		 (172/197 203/206 = 5 "3-6 days new") (198/199 298/299 398/399 998/999 = 9 "dont know/missing") if age<24 , gen(rh_pnc_nb_timing)  
		  
		*Recode babies with no check and babies with check by unskilled prov back to 0  
		 replace rh_pnc_nb_timing = 0 if (m70_1==0 | m70_1==9) 
		*Account for provider of PNC- country specific- see table footnotes 
		replace rh_pnc_nb_timing = 0 if (m72_1>29 & m72_1<97) | m72_1==. 
		replace rh_pnc_nb_timing = . if age>=24 | bidx_01!=1   
		  
		*label variable 
		label var rh_pnc_nb_timing "Timing after delivery for newborn's PNC check" 
 
	//PNC within 2days for newborn	 
		recode rh_pnc_nb_timing (1/4 = 1 "Visit within 2 days") (0 5 9 = 0 "No Visit within 2 days"), g(rh_pnc_nb_2days) 
		*label variable	 
		label var rh_pnc_nb_2days "PNC check within two days for newborn" 
 
	//PNC provider for newborn 
	** this is country specific, please check table in final report 
		recode m72_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
				( 98/99 = 9 "Don't know or missing") if age<24 & rh_pnc_nb_timing<9 & rh_pnc_nb_timing>0, gen(rh_pnc_nb_pv) 
		replace rh_pnc_nb_pv = 0 if rh_pnc_nb_2days ==0 & age<24 
		label var rh_pnc_nb_pv "Provider for newborn's PNC check" 
		 
	} 
 
	if m51_included==0 { 
 
	//PNC timing for newborn	 
		 
		*Newborn check 
		gen nbcheck = 1 if (m70_1==1 | m74_1==1 ) 
		*create combined timing variable 
		gen pnc_nb_timing_all = 999 if age<24 & nbcheck==1  
		 
		*start with women who delivered in a health facility with a check 
		replace pnc_nb_timing_all = m75_1 if inrange(m76_1,11,29) & age<24  
		*Account for provider of PNC- country specific- see table footnotes 
		replace pnc_nb_timing_all = 0 if pnc_nb_timing_all < 1000 & m76_1 >30 & m76_1 < 100 & age<24  
		 
		*Add in women who delivered at home with a check 
		replace pnc_nb_timing_all = m71_1 if (pnc_nb_timing_all==999 & inrange(m72_1,11,29) & age<24) 
		*Account for provider of PNC- country specific- see table footnotes 
		replace pnc_nb_timing_all = 0 if (m71_1 < 1000 & m72_1 >30 & m72_1 < 100 & age<24) 
		*Add in women who had no check  
		replace pnc_nb_timing_all = 0 if (nbcheck!=1) & age<24  
		 
		*Recode variable into categories as in FR 
		recode pnc_nb_timing_all (0 207/297 301/397 = 0 "No check or past 7 days") ( 100=1 "less than 1 hour") (101/103 =2 "1-3 hours") (104/123 200 = 3 "4 to 23 hours") (124/171 201/202 = 4 "1-2 days") /// 
		 (172/197 203/206 = 5 "3-6 days new") (else = 9 "Don't know or missing") if age<24 , gen (rh_pnc_nb_timing)  
		*label variable 
		label var rh_pnc_nb_timing "Timing after delivery for mother's PNC check" 
 
	//PNC within 2days for newborn	 
		recode rh_pnc_nb_timing (1/4 = 1 "visit within 2 days") (0 5 9 = 0 "No Visit within 2 days"), g(rh_pnc_nb_2days) 
		label var rh_pnc_nb_2days "PNC check within two days for newborn" 
 
	//PNC provider for newborn 
	** This is country specific and could be different for different surveys, please check footnote of the table for this indicator in the final report.  
		 
		*Providers of PNC for home deliveries or checks after discharge 
		recode m72_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
		( else = 9 "Don't know or missing") if age<24 & rh_pnc_nb_2days==1, gen(pnc_nb_pv_home) 
		replace pnc_nb_pv_home = 0 if rh_pnc_nb_2days==0 & age<24 
		 
		*Providers of PNC for facility deliveries  
		recode m76_1 (0 = 0 "No check") (11 = 1 "Doctor") (12/13 = 2 "Nurse/Midwife") ( 14/15 = 3 "Other skilled provider") (16/90 = 4 "Non-skilled provider") (96 = 5 "Other") /// 
		( else = 9 "Don't know or missing") if age<24 & rh_pnc_nb_2days==1 , gen(pnc_nb_pv_hf) 
		replace pnc_nb_pv_hf = 0 if rh_pnc_nb_2days==0  & age<24 
		 
		*Combine two PNC provider variables 	 
		clonevar rh_pnc_nb_pv = pnc_nb_pv_hf  
		replace rh_pnc_nb_pv = pnc_nb_pv_home if (pnc_nb_pv_hf ==9) &  rh_pnc_nb_2days ==1 & age<24  
		*label variable 
		label var rh_pnc_nb_pv "Provider for newborns's PNC check" 
		 
	} 
} 
 
*survey does not have newborn PNC indicators 
if m70s_included==0 { 
* replace indicators as missing 
gen rh_pnc_nb_timing = . 
gen rh_pnc_nb_2days = . 	 
gen rh_pnc_nb_pv = .  
} 
 
*=======TABLES PRODUCED======= 
ta rh_pnc_nb_2days[iw=w]    //for Newborn 
 
 
PNC check within two  
days for newborn	      
                           Freq.	    Percent	  Cum. 
			 
No Visit within 2 days	   798.142952	25.19	  25.19 
visit within 2 days	       2,370.5574	74.81	  100.00 
			 
Total	                   3,168.7003	100.00 
 
 
ta rh_pnc_wm_2days[iw=w]      // for Mom or mother 
PNC check  
within two	 
days for	 
mother                   
                           Freq.	      Percent	Cum. 
			 
Not in 2 days	           932.12392	  29.42	    29.42 
Within 2 days	           2,236.5764	  70.58	    100.00 
			 
Total                      3,168.7003	  100.00 
 
 
 
 
 
 
 
		
		
  AF
		
 |  
	| 
		
	 | 
 
 
 |  
	| 
		
 |  
	
		
		
			| Re: Post Natal Care check [message #23791 is a reply to message #23781] | 
			Wed, 01 December 2021 06:00    | 
		 
		
			
				
				
				
					
						  
						Francois
						 Messages: 9 Registered: February 2017  Location: KIGALI
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Dear Shireen, 
 
Thank you very much. It works! 
 
So is this the same variable used determining age for ANC while calculating the women" Received 2+ tetanus injections during last pregnancy" and  
women "Protected against neonatal tetanus"? 
Also, the variable "Period" is similar with which variable? 
Thank you very much 
 
Francois
		
		
  AF
		
 |  
	| 
		
	 | 
 
 
 |  
	| 
		
 |  
	
		
		
			| Re: Post Natal Care check [message #23793 is a reply to message #23792] | 
			Wed, 01 December 2021 08:27   | 
		 
		
			
				
				
				
					
						  
						Shireen-DHS
						 Messages: 140 Registered: August 2020  Location: USA
						
					 | 
					Senior Member  | 
					 | 
		 
		 
	 | 
 
	
		Great to hear it worked for you.  
 
Yes the age would be the same for the ANC. Please read the main file and the age_period file.  
The period is usually births in the last past 5 years for ANC indicators (i.e. 60 months) or the past 2 years for PNC indicators (i.e. 24 months). For Rwanda you dont need to change anything because the code is set up for these periods. For other surveys you need to see what it says in the table title (births in the last 5 years or other). 
 
Best, 
Shireen
		
		
		
 |  
	| 
		
	 | 
 
 
 |   
Goto Forum:
 
 Current Time: Tue Nov 4 06:03:18 Coordinated Universal Time 2025 
 |